Remove blank lines from all tests
Remove all blank lines from test code so that test methods are visually grouped together. This generally helps to make the test classes easer to scan, however, the "given" / "when" / "then" blocks used by some tests are now not as easy to discern. Issue gh-8945
This commit is contained in:
-5
@@ -45,9 +45,7 @@ public class TestSecurityContextHolderTests {
|
||||
public void clearContextClearsBoth() {
|
||||
SecurityContextHolder.setContext(this.context);
|
||||
TestSecurityContextHolder.setContext(this.context);
|
||||
|
||||
TestSecurityContextHolder.clearContext();
|
||||
|
||||
assertThat(SecurityContextHolder.getContext()).isNotSameAs(this.context);
|
||||
assertThat(TestSecurityContextHolder.getContext()).isNotSameAs(this.context);
|
||||
}
|
||||
@@ -61,7 +59,6 @@ public class TestSecurityContextHolderTests {
|
||||
@Test
|
||||
public void setContextSetsBoth() {
|
||||
TestSecurityContextHolder.setContext(this.context);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext()).isSameAs(this.context);
|
||||
assertThat(SecurityContextHolder.getContext()).isSameAs(this.context);
|
||||
}
|
||||
@@ -69,9 +66,7 @@ public class TestSecurityContextHolderTests {
|
||||
@Test
|
||||
public void setContextWithAuthentication() {
|
||||
Authentication authentication = mock(Authentication.class);
|
||||
|
||||
TestSecurityContextHolder.setAuthentication(authentication);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext().getAuthentication()).isSameAs(authentication);
|
||||
}
|
||||
|
||||
|
||||
-1
@@ -46,7 +46,6 @@ public class SecurityTestExecutionListenerTests {
|
||||
public void reactorContextTestSecurityContextHolderExecutionListenerTestIsRegistered() {
|
||||
Mono<String> name = ReactiveSecurityContextHolder.getContext().map(SecurityContext::getAuthentication)
|
||||
.map(Principal::getName);
|
||||
|
||||
StepVerifier.create(name).expectNext("user").verifyComplete();
|
||||
}
|
||||
|
||||
|
||||
-1
@@ -30,7 +30,6 @@ public class WithMockCustomUserSecurityContextFactory implements WithSecurityCon
|
||||
@Override
|
||||
public SecurityContext createSecurityContext(WithMockCustomUser customUser) {
|
||||
SecurityContext context = SecurityContextHolder.createEmptyContext();
|
||||
|
||||
CustomUserDetails principal = new CustomUserDetails(customUser.name(), customUser.username());
|
||||
Authentication auth = new UsernamePasswordAuthenticationToken(principal, "password",
|
||||
principal.getAuthorities());
|
||||
|
||||
-1
@@ -35,7 +35,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
/**
|
||||
* @author Rob Winch
|
||||
*/
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = WithMockUserTests.Config.class)
|
||||
public class WithMockUserTests {
|
||||
|
||||
-1
@@ -40,7 +40,6 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
/**
|
||||
* @author Rob Winch
|
||||
*/
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = WithUserDetailsTests.Config.class)
|
||||
public class WithUserDetailsTests {
|
||||
|
||||
-25
@@ -20,7 +20,6 @@ package org.springframework.security.test.context.support;
|
||||
* @author Rob Winch
|
||||
* @since 5.0
|
||||
*/
|
||||
|
||||
import java.util.concurrent.ForkJoinPool;
|
||||
|
||||
import org.junit.After;
|
||||
@@ -60,20 +59,15 @@ public class ReactorContextTestExecutionListenerTests {
|
||||
@Test
|
||||
public void beforeTestMethodWhenSecurityContextEmptyThenReactorContextNull() throws Exception {
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
Mono<?> result = ReactiveSecurityContextHolder.getContext();
|
||||
|
||||
StepVerifier.create(result).verifyComplete();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void beforeTestMethodWhenNullAuthenticationThenReactorContextNull() throws Exception {
|
||||
TestSecurityContextHolder.setContext(new SecurityContextImpl());
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
Mono<?> result = ReactiveSecurityContextHolder.getContext();
|
||||
|
||||
StepVerifier.create(result).verifyComplete();
|
||||
}
|
||||
|
||||
@@ -82,9 +76,7 @@ public class ReactorContextTestExecutionListenerTests {
|
||||
TestingAuthenticationToken expectedAuthentication = new TestingAuthenticationToken("user", "password",
|
||||
"ROLE_USER");
|
||||
TestSecurityContextHolder.setAuthentication(expectedAuthentication);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
assertAuthentication(expectedAuthentication);
|
||||
}
|
||||
|
||||
@@ -94,9 +86,7 @@ public class ReactorContextTestExecutionListenerTests {
|
||||
"ROLE_USER");
|
||||
SecurityContext context = new CustomContext(expectedAuthentication);
|
||||
TestSecurityContextHolder.setContext(context);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
assertSecurityContext(context);
|
||||
}
|
||||
|
||||
@@ -108,13 +98,10 @@ public class ReactorContextTestExecutionListenerTests {
|
||||
TestingAuthenticationToken contextHolder = new TestingAuthenticationToken("contextHolder", "password",
|
||||
"ROLE_USER");
|
||||
TestSecurityContextHolder.setAuthentication(contextHolder);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
Mono<Authentication> authentication = Mono.just("any")
|
||||
.flatMap((s) -> ReactiveSecurityContextHolder.getContext().map(SecurityContext::getAuthentication))
|
||||
.subscriberContext(ReactiveSecurityContextHolder.withAuthentication(expectedAuthentication));
|
||||
|
||||
StepVerifier.create(authentication).expectNext(expectedAuthentication).verifyComplete();
|
||||
}
|
||||
|
||||
@@ -125,39 +112,31 @@ public class ReactorContextTestExecutionListenerTests {
|
||||
TestingAuthenticationToken contextHolder = new TestingAuthenticationToken("contextHolder", "password",
|
||||
"ROLE_USER");
|
||||
TestSecurityContextHolder.setAuthentication(contextHolder);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
Mono<Authentication> authentication = Mono.just("any")
|
||||
.flatMap((s) -> ReactiveSecurityContextHolder.getContext().map(SecurityContext::getAuthentication))
|
||||
.subscriberContext(ReactiveSecurityContextHolder.clearContext());
|
||||
|
||||
StepVerifier.create(authentication).verifyComplete();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void afterTestMethodWhenSecurityContextEmptyThenNoError() throws Exception {
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
this.listener.afterTestMethod(this.testContext);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void afterTestMethodWhenSetupThenReactorContextNull() throws Exception {
|
||||
beforeTestMethodWhenAuthenticationThenReactorContextHasAuthentication();
|
||||
|
||||
this.listener.afterTestMethod(this.testContext);
|
||||
|
||||
assertThat(Mono.subscriberContext().block().isEmpty()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void afterTestMethodWhenDifferentHookIsRegistered() throws Exception {
|
||||
Object obj = new Object();
|
||||
|
||||
Hooks.onLastOperator("CUSTOM_HOOK", (p) -> Mono.just(obj));
|
||||
this.listener.afterTestMethod(this.testContext);
|
||||
|
||||
Object result = Mono.subscriberContext().block();
|
||||
assertThat(result).isEqualTo(obj);
|
||||
}
|
||||
@@ -176,22 +155,18 @@ public class ReactorContextTestExecutionListenerTests {
|
||||
TestingAuthenticationToken contextHolder = new TestingAuthenticationToken("contextHolder", "password",
|
||||
"ROLE_USER");
|
||||
TestSecurityContextHolder.setAuthentication(contextHolder);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
ForkJoinPool.commonPool().submit(() -> assertAuthentication(contextHolder)).join();
|
||||
}
|
||||
|
||||
public void assertAuthentication(Authentication expected) {
|
||||
Mono<Authentication> authentication = ReactiveSecurityContextHolder.getContext()
|
||||
.map(SecurityContext::getAuthentication);
|
||||
|
||||
StepVerifier.create(authentication).expectNext(expected).verifyComplete();
|
||||
}
|
||||
|
||||
private void assertSecurityContext(SecurityContext expected) {
|
||||
Mono<SecurityContext> securityContext = ReactiveSecurityContextHolder.getContext();
|
||||
|
||||
StepVerifier.create(securityContext).expectNext(expected).verifyComplete();
|
||||
}
|
||||
|
||||
|
||||
-3
@@ -32,7 +32,6 @@ public class WithAnonymousUserTests {
|
||||
public void defaults() {
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(Annotated.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_METHOD);
|
||||
}
|
||||
|
||||
@@ -40,7 +39,6 @@ public class WithAnonymousUserTests {
|
||||
public void findMergedAnnotationWhenSetupExplicitThenOverridden() {
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(SetupExplicit.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_METHOD);
|
||||
}
|
||||
|
||||
@@ -48,7 +46,6 @@ public class WithAnonymousUserTests {
|
||||
public void findMergedAnnotationWhenSetupOverriddenThenOverridden() {
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(SetupOverridden.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_EXECUTION);
|
||||
}
|
||||
|
||||
|
||||
-6
@@ -49,7 +49,6 @@ public class WithMockUserSecurityContextFactoryTests {
|
||||
given(this.withUser.password()).willReturn("password");
|
||||
given(this.withUser.roles()).willReturn(new String[] { "USER" });
|
||||
given(this.withUser.authorities()).willReturn(new String[] {});
|
||||
|
||||
assertThat(this.factory.createSecurityContext(this.withUser).getAuthentication().getName())
|
||||
.isEqualTo(this.withUser.value());
|
||||
}
|
||||
@@ -60,7 +59,6 @@ public class WithMockUserSecurityContextFactoryTests {
|
||||
given(this.withUser.password()).willReturn("password");
|
||||
given(this.withUser.roles()).willReturn(new String[] { "USER" });
|
||||
given(this.withUser.authorities()).willReturn(new String[] {});
|
||||
|
||||
assertThat(this.factory.createSecurityContext(this.withUser).getAuthentication().getName())
|
||||
.isEqualTo(this.withUser.username());
|
||||
}
|
||||
@@ -71,7 +69,6 @@ public class WithMockUserSecurityContextFactoryTests {
|
||||
given(this.withUser.password()).willReturn("password");
|
||||
given(this.withUser.roles()).willReturn(new String[] { "USER", "CUSTOM" });
|
||||
given(this.withUser.authorities()).willReturn(new String[] {});
|
||||
|
||||
assertThat(this.factory.createSecurityContext(this.withUser).getAuthentication().getAuthorities())
|
||||
.extracting("authority").containsOnly("ROLE_USER", "ROLE_CUSTOM");
|
||||
}
|
||||
@@ -82,7 +79,6 @@ public class WithMockUserSecurityContextFactoryTests {
|
||||
given(this.withUser.password()).willReturn("password");
|
||||
given(this.withUser.roles()).willReturn(new String[] { "USER" });
|
||||
given(this.withUser.authorities()).willReturn(new String[] { "USER", "CUSTOM" });
|
||||
|
||||
assertThat(this.factory.createSecurityContext(this.withUser).getAuthentication().getAuthorities())
|
||||
.extracting("authority").containsOnly("USER", "CUSTOM");
|
||||
}
|
||||
@@ -92,7 +88,6 @@ public class WithMockUserSecurityContextFactoryTests {
|
||||
given(this.withUser.value()).willReturn("valueUser");
|
||||
given(this.withUser.roles()).willReturn(new String[] { "CUSTOM" });
|
||||
given(this.withUser.authorities()).willReturn(new String[] { "USER", "CUSTOM" });
|
||||
|
||||
this.factory.createSecurityContext(this.withUser);
|
||||
}
|
||||
|
||||
@@ -101,7 +96,6 @@ public class WithMockUserSecurityContextFactoryTests {
|
||||
given(this.withUser.value()).willReturn("valueUser");
|
||||
given(this.withUser.roles()).willReturn(new String[] { "ROLE_FAIL" });
|
||||
given(this.withUser.authorities()).willReturn(new String[] {});
|
||||
|
||||
this.factory.createSecurityContext(this.withUser);
|
||||
}
|
||||
|
||||
|
||||
-4
@@ -32,10 +32,8 @@ public class WithMockUserTests {
|
||||
assertThat(mockUser.password()).isEqualTo("password");
|
||||
assertThat(mockUser.roles()).containsOnly("USER");
|
||||
assertThat(mockUser.setupBefore()).isEqualByComparingTo(TestExecutionEvent.TEST_METHOD);
|
||||
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(Annotated.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_METHOD);
|
||||
}
|
||||
|
||||
@@ -43,7 +41,6 @@ public class WithMockUserTests {
|
||||
public void findMergedAnnotationWhenSetupExplicitThenOverridden() {
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(SetupExplicit.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_METHOD);
|
||||
}
|
||||
|
||||
@@ -51,7 +48,6 @@ public class WithMockUserTests {
|
||||
public void findMergedAnnotationWhenSetupOverriddenThenOverridden() {
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(SetupOverridden.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_EXECUTION);
|
||||
}
|
||||
|
||||
|
||||
-11
@@ -79,7 +79,6 @@ public class WithSecurityContextTestExcecutionListenerTests {
|
||||
Class testClass = FakeTest.class;
|
||||
given(this.testContext.getTestClass()).willReturn(testClass);
|
||||
given(this.testContext.getTestMethod()).willReturn(ReflectionUtils.findMethod(testClass, "testNoAnnotation"));
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
}
|
||||
|
||||
@@ -89,9 +88,7 @@ public class WithSecurityContextTestExcecutionListenerTests {
|
||||
Class testClass = FakeTest.class;
|
||||
given(this.testContext.getApplicationContext()).willThrow(new IllegalStateException());
|
||||
given(this.testContext.getTestMethod()).willReturn(ReflectionUtils.findMethod(testClass, "testWithMockUser"));
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext().getAuthentication().getName()).isEqualTo("user");
|
||||
}
|
||||
|
||||
@@ -100,11 +97,8 @@ public class WithSecurityContextTestExcecutionListenerTests {
|
||||
public void withSecurityContextAfterSqlScripts() {
|
||||
SqlScriptsTestExecutionListener sql = new SqlScriptsTestExecutionListener();
|
||||
WithSecurityContextTestExecutionListener security = new WithSecurityContextTestExecutionListener();
|
||||
|
||||
List<TestExecutionListener> listeners = Arrays.asList(security, sql);
|
||||
|
||||
AnnotationAwareOrderComparator.sort(listeners);
|
||||
|
||||
assertThat(listeners).containsExactly(sql, security);
|
||||
}
|
||||
|
||||
@@ -113,13 +107,10 @@ public class WithSecurityContextTestExcecutionListenerTests {
|
||||
public void orderOverridden() {
|
||||
AbstractTestExecutionListener otherListener = new AbstractTestExecutionListener() {
|
||||
};
|
||||
|
||||
List<TestExecutionListener> listeners = new ArrayList<>();
|
||||
listeners.add(otherListener);
|
||||
listeners.add(this.listener);
|
||||
|
||||
AnnotationAwareOrderComparator.sort(listeners);
|
||||
|
||||
assertThat(listeners).containsSequence(this.listener, otherListener);
|
||||
}
|
||||
|
||||
@@ -131,9 +122,7 @@ public class WithSecurityContextTestExcecutionListenerTests {
|
||||
TestContext testContext = mock(TestContext.class);
|
||||
given(testContext.getTestMethod()).willReturn(method);
|
||||
given(testContext.getApplicationContext()).willThrow(new IllegalStateException(""));
|
||||
|
||||
this.listener.beforeTestMethod(testContext);
|
||||
|
||||
assertThat(SecurityContextHolder.getContext().getAuthentication().getPrincipal())
|
||||
.isInstanceOf(WithSuperClassWithSecurityContext.class);
|
||||
}
|
||||
|
||||
-12
@@ -80,9 +80,7 @@ public class WithSecurityContextTestExecutionListenerTests {
|
||||
Method testMethod = TheTest.class.getMethod("withMockUserDefault");
|
||||
given(this.testContext.getApplicationContext()).willReturn(this.applicationContext);
|
||||
given(this.testContext.getTestMethod()).willReturn(testMethod);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext().getAuthentication()).isNotNull();
|
||||
verify(this.testContext, never()).setAttribute(
|
||||
eq(WithSecurityContextTestExecutionListener.SECURITY_CONTEXT_ATTR_NAME), any(SecurityContext.class));
|
||||
@@ -93,9 +91,7 @@ public class WithSecurityContextTestExecutionListenerTests {
|
||||
Method testMethod = TheTest.class.getMethod("withMockUserTestMethod");
|
||||
given(this.testContext.getApplicationContext()).willReturn(this.applicationContext);
|
||||
given(this.testContext.getTestMethod()).willReturn(testMethod);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext().getAuthentication()).isNotNull();
|
||||
verify(this.testContext, never()).setAttribute(
|
||||
eq(WithSecurityContextTestExecutionListener.SECURITY_CONTEXT_ATTR_NAME), any(SecurityContext.class));
|
||||
@@ -106,9 +102,7 @@ public class WithSecurityContextTestExecutionListenerTests {
|
||||
Method testMethod = TheTest.class.getMethod("withMockUserTestExecution");
|
||||
given(this.testContext.getApplicationContext()).willReturn(this.applicationContext);
|
||||
given(this.testContext.getTestMethod()).willReturn(testMethod);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext().getAuthentication()).isNull();
|
||||
verify(this.testContext).setAttribute(eq(WithSecurityContextTestExecutionListener.SECURITY_CONTEXT_ATTR_NAME),
|
||||
ArgumentMatchers.<Supplier<SecurityContext>>any());
|
||||
@@ -120,9 +114,7 @@ public class WithSecurityContextTestExecutionListenerTests {
|
||||
Method testMethod = TheTest.class.getMethod("withMockUserTestExecution");
|
||||
given(this.testContext.getApplicationContext()).willReturn(this.applicationContext);
|
||||
given(this.testContext.getTestMethod()).willReturn(testMethod);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
|
||||
ArgumentCaptor<Supplier<SecurityContext>> supplierCaptor = ArgumentCaptor.forClass(Supplier.class);
|
||||
verify(this.testContext).setAttribute(eq(WithSecurityContextTestExecutionListener.SECURITY_CONTEXT_ATTR_NAME),
|
||||
supplierCaptor.capture());
|
||||
@@ -136,7 +128,6 @@ public class WithSecurityContextTestExecutionListenerTests {
|
||||
given(this.testContext.getApplicationContext()).willReturn(this.applicationContext);
|
||||
// do not set a UserDetailsService Bean so it would fail if looked up
|
||||
given(this.testContext.getTestMethod()).willReturn(testMethod);
|
||||
|
||||
this.listener.beforeTestMethod(this.testContext);
|
||||
// bean lookup of UserDetailsService would fail if it has already been looked up
|
||||
}
|
||||
@@ -144,7 +135,6 @@ public class WithSecurityContextTestExecutionListenerTests {
|
||||
@Test
|
||||
public void beforeTestExecutionWhenTestContextNullThenSecurityContextNotSet() {
|
||||
this.listener.beforeTestExecution(this.testContext);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext().getAuthentication()).isNull();
|
||||
}
|
||||
|
||||
@@ -155,9 +145,7 @@ public class WithSecurityContextTestExecutionListenerTests {
|
||||
Supplier<SecurityContext> supplier = () -> securityContext;
|
||||
given(this.testContext.removeAttribute(WithSecurityContextTestExecutionListener.SECURITY_CONTEXT_ATTR_NAME))
|
||||
.willReturn(supplier);
|
||||
|
||||
this.listener.beforeTestExecution(this.testContext);
|
||||
|
||||
assertThat(TestSecurityContextHolder.getContext().getAuthentication())
|
||||
.isEqualTo(securityContext.getAuthentication());
|
||||
}
|
||||
|
||||
-5
@@ -68,7 +68,6 @@ public class WithUserDetailsSecurityContextFactoryTests {
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void createSecurityContextEmptyValue() {
|
||||
|
||||
given(this.withUserDetails.value()).willReturn("");
|
||||
this.factory.createSecurityContext(this.withUserDetails);
|
||||
}
|
||||
@@ -80,7 +79,6 @@ public class WithUserDetailsSecurityContextFactoryTests {
|
||||
given(this.beans.getBean(UserDetailsService.class)).willReturn(this.userDetailsService);
|
||||
given(this.withUserDetails.value()).willReturn(username);
|
||||
given(this.userDetailsService.loadUserByUsername(username)).willReturn(this.userDetails);
|
||||
|
||||
SecurityContext context = this.factory.createSecurityContext(this.withUserDetails);
|
||||
assertThat(context.getAuthentication()).isInstanceOf(UsernamePasswordAuthenticationToken.class);
|
||||
assertThat(context.getAuthentication().getPrincipal()).isEqualTo(this.userDetails);
|
||||
@@ -98,7 +96,6 @@ public class WithUserDetailsSecurityContextFactoryTests {
|
||||
given(this.withUserDetails.userDetailsServiceBeanName()).willReturn(beanName);
|
||||
given(this.userDetailsService.loadUserByUsername(username)).willReturn(this.userDetails);
|
||||
given(this.beans.getBean(beanName, UserDetailsService.class)).willReturn(this.userDetailsService);
|
||||
|
||||
SecurityContext context = this.factory.createSecurityContext(this.withUserDetails);
|
||||
assertThat(context.getAuthentication()).isInstanceOf(UsernamePasswordAuthenticationToken.class);
|
||||
assertThat(context.getAuthentication().getPrincipal()).isEqualTo(this.userDetails);
|
||||
@@ -111,7 +108,6 @@ public class WithUserDetailsSecurityContextFactoryTests {
|
||||
given(this.withUserDetails.value()).willReturn(username);
|
||||
given(this.beans.getBean(ReactiveUserDetailsService.class)).willReturn(this.reactiveUserDetailsService);
|
||||
given(this.reactiveUserDetailsService.findByUsername(username)).willReturn(Mono.just(this.userDetails));
|
||||
|
||||
SecurityContext context = this.factory.createSecurityContext(this.withUserDetails);
|
||||
assertThat(context.getAuthentication()).isInstanceOf(UsernamePasswordAuthenticationToken.class);
|
||||
assertThat(context.getAuthentication().getPrincipal()).isEqualTo(this.userDetails);
|
||||
@@ -127,7 +123,6 @@ public class WithUserDetailsSecurityContextFactoryTests {
|
||||
given(this.beans.getBean(beanName, ReactiveUserDetailsService.class))
|
||||
.willReturn(this.reactiveUserDetailsService);
|
||||
given(this.reactiveUserDetailsService.findByUsername(username)).willReturn(Mono.just(this.userDetails));
|
||||
|
||||
SecurityContext context = this.factory.createSecurityContext(this.withUserDetails);
|
||||
assertThat(context.getAuthentication()).isInstanceOf(UsernamePasswordAuthenticationToken.class);
|
||||
assertThat(context.getAuthentication().getPrincipal()).isEqualTo(this.userDetails);
|
||||
|
||||
-4
@@ -29,10 +29,8 @@ public class WithUserDetailsTests {
|
||||
public void defaults() {
|
||||
WithUserDetails userDetails = AnnotationUtils.findAnnotation(Annotated.class, WithUserDetails.class);
|
||||
assertThat(userDetails.value()).isEqualTo("user");
|
||||
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(Annotated.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_METHOD);
|
||||
}
|
||||
|
||||
@@ -40,7 +38,6 @@ public class WithUserDetailsTests {
|
||||
public void findMergedAnnotationWhenSetupExplicitThenOverridden() {
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(SetupExplicit.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_METHOD);
|
||||
}
|
||||
|
||||
@@ -48,7 +45,6 @@ public class WithUserDetailsTests {
|
||||
public void findMergedAnnotationWhenSetupOverriddenThenOverridden() {
|
||||
WithSecurityContext context = AnnotatedElementUtils.findMergedAnnotation(SetupOverridden.class,
|
||||
WithSecurityContext.class);
|
||||
|
||||
assertThat(context.setupBefore()).isEqualTo(TestExecutionEvent.TEST_EXECUTION);
|
||||
}
|
||||
|
||||
|
||||
-2
@@ -43,11 +43,9 @@ abstract class AbstractMockServerConfigurersTests {
|
||||
|
||||
protected void assertPrincipalCreatedFromUserDetails(Principal principal, UserDetails originalUserDetails) {
|
||||
assertThat(principal).isInstanceOf(UsernamePasswordAuthenticationToken.class);
|
||||
|
||||
UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) principal;
|
||||
assertThat(authentication.getCredentials()).isEqualTo(originalUserDetails.getPassword());
|
||||
assertThat(authentication.getAuthorities()).containsOnlyElementsOf(originalUserDetails.getAuthorities());
|
||||
|
||||
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
|
||||
assertThat(userDetails.getPassword()).isEqualTo(authentication.getCredentials());
|
||||
assertThat(authentication.getAuthorities()).containsOnlyElementsOf(userDetails.getAuthorities());
|
||||
|
||||
-8
@@ -59,7 +59,6 @@ public class SecurityMockServerConfigurerOpaqueTokenTests extends AbstractMockSe
|
||||
@Test
|
||||
public void mockOpaqueTokenWhenUsingDefaultsThenBearerTokenAuthentication() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOpaqueToken()).get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(BearerTokenAuthentication.class);
|
||||
BearerTokenAuthentication token = (BearerTokenAuthentication) context.getAuthentication();
|
||||
@@ -74,7 +73,6 @@ public class SecurityMockServerConfigurerOpaqueTokenTests extends AbstractMockSe
|
||||
.mutateWith(
|
||||
SecurityMockServerConfigurers.mockOpaqueToken().authorities(this.authority1, this.authority2))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat((List<GrantedAuthority>) context.getAuthentication().getAuthorities()).containsOnly(this.authority1,
|
||||
this.authority2);
|
||||
@@ -87,7 +85,6 @@ public class SecurityMockServerConfigurerOpaqueTokenTests extends AbstractMockSe
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOpaqueToken()
|
||||
.attributes((attributes) -> attributes.put(OAuth2IntrospectionClaimNames.SUBJECT, sub)))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(BearerTokenAuthentication.class);
|
||||
BearerTokenAuthentication token = (BearerTokenAuthentication) context.getAuthentication();
|
||||
@@ -99,7 +96,6 @@ public class SecurityMockServerConfigurerOpaqueTokenTests extends AbstractMockSe
|
||||
OAuth2AuthenticatedPrincipal principal = TestOAuth2AuthenticatedPrincipals.active();
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOpaqueToken().principal(principal)).get().exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(BearerTokenAuthentication.class);
|
||||
BearerTokenAuthentication token = (BearerTokenAuthentication) context.getAuthentication();
|
||||
@@ -110,24 +106,20 @@ public class SecurityMockServerConfigurerOpaqueTokenTests extends AbstractMockSe
|
||||
public void mockOpaqueTokenWhenPrincipalSpecifiedThenLastCalledTakesPrecedence() {
|
||||
OAuth2AuthenticatedPrincipal principal = TestOAuth2AuthenticatedPrincipals
|
||||
.active((a) -> a.put("scope", "user"));
|
||||
|
||||
this.client
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOpaqueToken()
|
||||
.attributes((a) -> a.put(OAuth2IntrospectionClaimNames.SUBJECT, "foo")).principal(principal))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(BearerTokenAuthentication.class);
|
||||
BearerTokenAuthentication token = (BearerTokenAuthentication) context.getAuthentication();
|
||||
assertThat((String) ((OAuth2AuthenticatedPrincipal) token.getPrincipal())
|
||||
.getAttribute(OAuth2IntrospectionClaimNames.SUBJECT))
|
||||
.isEqualTo(principal.getAttribute(OAuth2IntrospectionClaimNames.SUBJECT));
|
||||
|
||||
this.client
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOpaqueToken().principal(principal)
|
||||
.attributes((a) -> a.put(OAuth2IntrospectionClaimNames.SUBJECT, "bar")))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(BearerTokenAuthentication.class);
|
||||
token = (BearerTokenAuthentication) context.getAuthentication();
|
||||
|
||||
-12
@@ -49,7 +49,6 @@ public class SecurityMockServerConfigurersAnnotatedTests extends AbstractMockSer
|
||||
@WithMockUser
|
||||
public void withMockUserWhenOnMethodThenSuccess() {
|
||||
this.client.get().exchange().expectStatus().isOk();
|
||||
|
||||
Authentication authentication = TestSecurityContextHolder.getContext().getAuthentication();
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
}
|
||||
@@ -64,9 +63,7 @@ public class SecurityMockServerConfigurersAnnotatedTests extends AbstractMockSer
|
||||
.apply(SecurityMockServerConfigurers.springSecurity())
|
||||
.apply(SecurityMockServerConfigurers.mockAuthentication(authentication)).configureClient()
|
||||
.defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).build();
|
||||
|
||||
this.client.get().exchange().expectStatus().isOk();
|
||||
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
}
|
||||
|
||||
@@ -77,7 +74,6 @@ public class SecurityMockServerConfigurersAnnotatedTests extends AbstractMockSer
|
||||
"ROLE_USER");
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockAuthentication(authentication)).get().exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
}
|
||||
|
||||
@@ -88,11 +84,8 @@ public class SecurityMockServerConfigurersAnnotatedTests extends AbstractMockSer
|
||||
"ROLE_USER");
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockAuthentication(authentication)).get().exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
|
||||
this.client.get().exchange().expectStatus().isOk();
|
||||
|
||||
assertPrincipalCreatedFromUserDetails(this.controller.removePrincipal(), this.userBuilder.build());
|
||||
}
|
||||
|
||||
@@ -101,7 +94,6 @@ public class SecurityMockServerConfigurersAnnotatedTests extends AbstractMockSer
|
||||
public void withMockUserWhenOnMethodAndRequestIsExecutedOnDifferentThreadThenSuccess() {
|
||||
Authentication authentication = TestSecurityContextHolder.getContext().getAuthentication();
|
||||
ForkJoinPool.commonPool().submit(() -> this.client.get().exchange().expectStatus().isOk()).join();
|
||||
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
}
|
||||
|
||||
@@ -110,16 +102,12 @@ public class SecurityMockServerConfigurersAnnotatedTests extends AbstractMockSer
|
||||
public void withMockUserAndWithCallOnSeparateThreadWhenMutateWithMockPrincipalAndNoMutateThenOverridesAnnotationAndUsesAnnotation() {
|
||||
TestingAuthenticationToken authentication = new TestingAuthenticationToken("authentication", "secret",
|
||||
"ROLE_USER");
|
||||
|
||||
ForkJoinPool.commonPool()
|
||||
.submit(() -> this.client.mutateWith(SecurityMockServerConfigurers.mockAuthentication(authentication))
|
||||
.get().exchange().expectStatus().isOk())
|
||||
.join();
|
||||
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
|
||||
ForkJoinPool.commonPool().submit(() -> this.client.get().exchange().expectStatus().isOk()).join();
|
||||
|
||||
assertPrincipalCreatedFromUserDetails(this.controller.removePrincipal(), this.userBuilder.build());
|
||||
}
|
||||
|
||||
|
||||
-3
@@ -51,7 +51,6 @@ public class SecurityMockServerConfigurersClassAnnotatedTests extends AbstractMo
|
||||
public void wheMockUserWhenClassAnnotatedThenSuccess() {
|
||||
this.client.get().exchange().expectStatus().isOk().expectBody(String.class)
|
||||
.consumeWith((response) -> assertThat(response.getResponseBody()).contains("\"username\":\"user\""));
|
||||
|
||||
Authentication authentication = TestSecurityContextHolder.getContext().getAuthentication();
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
}
|
||||
@@ -61,7 +60,6 @@ public class SecurityMockServerConfigurersClassAnnotatedTests extends AbstractMo
|
||||
public void withMockUserWhenClassAndMethodAnnotationThenMethodOverrides() {
|
||||
this.client.get().exchange().expectStatus().isOk().expectBody(String.class).consumeWith(
|
||||
(response) -> assertThat(response.getResponseBody()).contains("\"username\":\"method-user\""));
|
||||
|
||||
Authentication authentication = TestSecurityContextHolder.getContext().getAuthentication();
|
||||
this.controller.assertPrincipalIsEqualTo(authentication);
|
||||
}
|
||||
@@ -72,7 +70,6 @@ public class SecurityMockServerConfigurersClassAnnotatedTests extends AbstractMo
|
||||
.expectStatus().isOk().expectBody(String.class)
|
||||
.consumeWith((response) -> assertThat(response.getResponseBody())
|
||||
.contains("\"username\":\"mutateWith-mockUser\""));
|
||||
|
||||
Principal principal = this.controller.removePrincipal();
|
||||
assertPrincipalCreatedFromUserDetails(principal, this.userBuilder.username("mutateWith-mockUser").build());
|
||||
}
|
||||
|
||||
-6
@@ -63,7 +63,6 @@ public class SecurityMockServerConfigurersJwtTests extends AbstractMockServerCon
|
||||
@Test
|
||||
public void mockJwtWhenUsingDefaultsTheCreatesJwtAuthentication() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockJwt()).get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(JwtAuthenticationToken.class);
|
||||
JwtAuthenticationToken token = (JwtAuthenticationToken) context.getAuthentication();
|
||||
@@ -78,7 +77,6 @@ public class SecurityMockServerConfigurersJwtTests extends AbstractMockServerCon
|
||||
String name = new String("user");
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockJwt().jwt((jwt) -> jwt.subject(name))).get().exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(JwtAuthenticationToken.class);
|
||||
JwtAuthenticationToken token = (JwtAuthenticationToken) context.getAuthentication();
|
||||
@@ -90,7 +88,6 @@ public class SecurityMockServerConfigurersJwtTests extends AbstractMockServerCon
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockJwt()
|
||||
.jwt((jwt) -> jwt.claim("scope", "ignored authorities")).authorities(this.authority1, this.authority2))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat((List<GrantedAuthority>) context.getAuthentication().getAuthorities()).containsOnly(this.authority1,
|
||||
this.authority2);
|
||||
@@ -102,7 +99,6 @@ public class SecurityMockServerConfigurersJwtTests extends AbstractMockServerCon
|
||||
.mutateWith(
|
||||
SecurityMockServerConfigurers.mockJwt().jwt((jwt) -> jwt.claim("scope", "scoped authorities")))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat((List<GrantedAuthority>) context.getAuthentication().getAuthorities()).containsOnly(
|
||||
new SimpleGrantedAuthority("SCOPE_scoped"), new SimpleGrantedAuthority("SCOPE_authorities"));
|
||||
@@ -115,7 +111,6 @@ public class SecurityMockServerConfigurersJwtTests extends AbstractMockServerCon
|
||||
SecurityMockServerConfigurers.mockJwt().jwt((jwt) -> jwt.claim("scope", "ignored authorities"))
|
||||
.authorities((jwt) -> Arrays.asList(this.authority1)))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat((List<GrantedAuthority>) context.getAuthentication().getAuthorities()).containsOnly(this.authority1);
|
||||
}
|
||||
@@ -125,7 +120,6 @@ public class SecurityMockServerConfigurersJwtTests extends AbstractMockServerCon
|
||||
Jwt originalToken = TestJwts.jwt().header("header1", "value1").subject("some_user").build();
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockJwt().jwt(originalToken)).get().exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
SecurityContext context = this.securityContextController.removeSecurityContext();
|
||||
assertThat(context.getAuthentication()).isInstanceOf(JwtAuthenticationToken.class);
|
||||
JwtAuthenticationToken retrievedToken = (JwtAuthenticationToken) context.getAuthentication();
|
||||
|
||||
-11
@@ -75,7 +75,6 @@ public class SecurityMockServerConfigurersOAuth2ClientTests extends AbstractMock
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenUsingDefaultsThenException() throws Exception {
|
||||
|
||||
WebHttpHandlerBuilder builder = WebHttpHandlerBuilder.webHandler(new DispatcherHandler());
|
||||
assertThatCode(() -> SecurityMockServerConfigurers.mockOAuth2Client().beforeServerCreated(builder))
|
||||
.isInstanceOf(IllegalArgumentException.class).hasMessageContaining("ClientRegistration");
|
||||
@@ -83,10 +82,8 @@ public class SecurityMockServerConfigurersOAuth2ClientTests extends AbstractMock
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenUsingRegistrationIdThenProducesAuthorizedClient() throws Exception {
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Client("registration-id")).get().uri("/client")
|
||||
.exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client).isNotNull();
|
||||
assertThat(client.getClientRegistration().getRegistrationId()).isEqualTo("registration-id");
|
||||
@@ -96,12 +93,10 @@ public class SecurityMockServerConfigurersOAuth2ClientTests extends AbstractMock
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenClientRegistrationThenUses() throws Exception {
|
||||
|
||||
ClientRegistration clientRegistration = TestClientRegistrations.clientRegistration()
|
||||
.registrationId("registration-id").clientId("client-id").build();
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Client().clientRegistration(clientRegistration))
|
||||
.get().uri("/client").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client).isNotNull();
|
||||
assertThat(client.getClientRegistration().getRegistrationId()).isEqualTo("registration-id");
|
||||
@@ -111,12 +106,10 @@ public class SecurityMockServerConfigurersOAuth2ClientTests extends AbstractMock
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenClientRegistrationConsumerThenUses() throws Exception {
|
||||
|
||||
this.client
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOAuth2Client("registration-id")
|
||||
.clientRegistration((c) -> c.clientId("client-id")))
|
||||
.get().uri("/client").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client).isNotNull();
|
||||
assertThat(client.getClientRegistration().getRegistrationId()).isEqualTo("registration-id");
|
||||
@@ -136,12 +129,10 @@ public class SecurityMockServerConfigurersOAuth2ClientTests extends AbstractMock
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenAccessTokenThenUses() throws Exception {
|
||||
|
||||
OAuth2AccessToken accessToken = TestOAuth2AccessTokens.noScopes();
|
||||
this.client
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOAuth2Client("registration-id").accessToken(accessToken))
|
||||
.get().uri("/client").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client).isNotNull();
|
||||
assertThat(client.getClientRegistration().getRegistrationId()).isEqualTo("registration-id");
|
||||
@@ -153,11 +144,9 @@ public class SecurityMockServerConfigurersOAuth2ClientTests extends AbstractMock
|
||||
public void oauth2ClientWhenUsedOnceThenDoesNotAffectRemainingTests() throws Exception {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Client("registration-id")).get().uri("/client")
|
||||
.exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client).isNotNull();
|
||||
assertThat(client.getClientRegistration().getClientId()).isEqualTo("test-client");
|
||||
|
||||
client = new OAuth2AuthorizedClient(TestClientRegistrations.clientRegistration().build(), "sub",
|
||||
TestOAuth2AccessTokens.noScopes());
|
||||
given(this.authorizedClientRepository.loadAuthorizedClient(eq("registration-id"), any(Authentication.class),
|
||||
|
||||
-12
@@ -72,7 +72,6 @@ public class SecurityMockServerConfigurersOAuth2LoginTests extends AbstractMockS
|
||||
public void oauth2LoginWhenUsingDefaultsThenProducesDefaultAuthentication() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login()).get().uri("/token").exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token).isNotNull();
|
||||
assertThat(token.getAuthorizedClientRegistrationId()).isEqualTo("test");
|
||||
@@ -86,7 +85,6 @@ public class SecurityMockServerConfigurersOAuth2LoginTests extends AbstractMockS
|
||||
public void oauth2LoginWhenUsingDefaultsThenProducesDefaultAuthorizedClient() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login()).get().uri("/client").exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client).isNotNull();
|
||||
assertThat(client.getClientRegistration().getRegistrationId()).isEqualTo("test");
|
||||
@@ -100,7 +98,6 @@ public class SecurityMockServerConfigurersOAuth2LoginTests extends AbstractMockS
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login()
|
||||
.authorities(new SimpleGrantedAuthority("SCOPE_admin")))
|
||||
.get().uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat((Collection<GrantedAuthority>) token.getPrincipal().getAuthorities())
|
||||
.contains(new SimpleGrantedAuthority("SCOPE_admin"));
|
||||
@@ -112,7 +109,6 @@ public class SecurityMockServerConfigurersOAuth2LoginTests extends AbstractMockS
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login()
|
||||
.attributes((a) -> a.put("iss", "https://idp.example.org")))
|
||||
.get().uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getAttributes()).containsEntry("iss", "https://idp.example.org");
|
||||
}
|
||||
@@ -121,16 +117,12 @@ public class SecurityMockServerConfigurersOAuth2LoginTests extends AbstractMockS
|
||||
public void oauth2LoginWhenNameSpecifiedThenUserHasName() throws Exception {
|
||||
OAuth2User oauth2User = new DefaultOAuth2User(AuthorityUtils.commaSeparatedStringToAuthorityList("SCOPE_read"),
|
||||
Collections.singletonMap("custom-attribute", "test-subject"), "custom-attribute");
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login().oauth2User(oauth2User)).get()
|
||||
.uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getName()).isEqualTo("test-subject");
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login().oauth2User(oauth2User)).get()
|
||||
.uri("/client").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client.getPrincipalName()).isEqualTo("test-subject");
|
||||
}
|
||||
@@ -139,17 +131,13 @@ public class SecurityMockServerConfigurersOAuth2LoginTests extends AbstractMockS
|
||||
public void oauth2LoginWhenOAuth2UserSpecifiedThenLastCalledTakesPrecedence() throws Exception {
|
||||
OAuth2User oauth2User = new DefaultOAuth2User(AuthorityUtils.createAuthorityList("SCOPE_read"),
|
||||
Collections.singletonMap("sub", "subject"), "sub");
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login()
|
||||
.attributes((a) -> a.put("subject", "foo")).oauth2User(oauth2User)).get().uri("/token").exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getAttributes()).containsEntry("sub", "subject");
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login().oauth2User(oauth2User)
|
||||
.attributes((a) -> a.put("sub", "bar"))).get().uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getAttributes()).containsEntry("sub", "bar");
|
||||
}
|
||||
|
||||
-13
@@ -73,7 +73,6 @@ public class SecurityMockServerConfigurersOidcLoginTests extends AbstractMockSer
|
||||
public void oidcLoginWhenUsingDefaultsThenProducesDefaultAuthentication() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOidcLogin()).get().uri("/token").exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token).isNotNull();
|
||||
assertThat(token.getAuthorizedClientRegistrationId()).isEqualTo("test");
|
||||
@@ -88,7 +87,6 @@ public class SecurityMockServerConfigurersOidcLoginTests extends AbstractMockSer
|
||||
public void oidcLoginWhenUsingDefaultsThenProducesDefaultAuthorizedClient() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOidcLogin()).get().uri("/client").exchange()
|
||||
.expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client).isNotNull();
|
||||
assertThat(client.getClientRegistration().getRegistrationId()).isEqualTo("test");
|
||||
@@ -102,7 +100,6 @@ public class SecurityMockServerConfigurersOidcLoginTests extends AbstractMockSer
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOidcLogin()
|
||||
.authorities(new SimpleGrantedAuthority("SCOPE_admin")))
|
||||
.get().uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat((Collection<GrantedAuthority>) token.getPrincipal().getAuthorities())
|
||||
.contains(new SimpleGrantedAuthority("SCOPE_admin"));
|
||||
@@ -114,7 +111,6 @@ public class SecurityMockServerConfigurersOidcLoginTests extends AbstractMockSer
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOidcLogin()
|
||||
.idToken((i) -> i.issuer("https://idp.example.org")))
|
||||
.get().uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getAttributes()).containsEntry("iss", "https://idp.example.org");
|
||||
}
|
||||
@@ -124,7 +120,6 @@ public class SecurityMockServerConfigurersOidcLoginTests extends AbstractMockSer
|
||||
this.client
|
||||
.mutateWith(SecurityMockServerConfigurers.mockOidcLogin().userInfoToken((u) -> u.email("email@email")))
|
||||
.get().uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getAttributes()).containsEntry("email", "email@email");
|
||||
}
|
||||
@@ -134,16 +129,12 @@ public class SecurityMockServerConfigurersOidcLoginTests extends AbstractMockSer
|
||||
OidcUser oidcUser = new DefaultOidcUser(AuthorityUtils.commaSeparatedStringToAuthorityList("SCOPE_read"),
|
||||
OidcIdToken.withTokenValue("id-token").claim("custom-attribute", "test-subject").build(),
|
||||
"custom-attribute");
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login().oauth2User(oidcUser)).get().uri("/token")
|
||||
.exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getName()).isEqualTo("test-subject");
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockOAuth2Login().oauth2User(oidcUser)).get()
|
||||
.uri("/client").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthorizedClient client = this.controller.authorizedClient;
|
||||
assertThat(client.getPrincipalName()).isEqualTo("test-subject");
|
||||
}
|
||||
@@ -153,18 +144,14 @@ public class SecurityMockServerConfigurersOidcLoginTests extends AbstractMockSer
|
||||
public void oidcLoginWhenOidcUserSpecifiedThenLastCalledTakesPrecedence() throws Exception {
|
||||
OidcUser oidcUser = new DefaultOidcUser(AuthorityUtils.createAuthorityList("SCOPE_read"),
|
||||
TestOidcIdTokens.idToken().build());
|
||||
|
||||
this.client.mutateWith(
|
||||
SecurityMockServerConfigurers.mockOidcLogin().idToken((i) -> i.subject("foo")).oidcUser(oidcUser)).get()
|
||||
.uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
OAuth2AuthenticationToken token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getAttributes()).containsEntry("sub", "subject");
|
||||
|
||||
this.client.mutateWith(
|
||||
SecurityMockServerConfigurers.mockOidcLogin().oidcUser(oidcUser).idToken((i) -> i.subject("bar"))).get()
|
||||
.uri("/token").exchange().expectStatus().isOk();
|
||||
|
||||
token = this.controller.token;
|
||||
assertThat(token.getPrincipal().getAttributes()).containsEntry("sub", "bar");
|
||||
}
|
||||
|
||||
-14
@@ -68,9 +68,7 @@ public class SecurityMockServerConfigurersTests extends AbstractMockServerConfig
|
||||
@Test
|
||||
public void mockUserWhenDefaultsThenSuccess() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockUser()).get().exchange().expectStatus().isOk();
|
||||
|
||||
Principal actual = this.controller.removePrincipal();
|
||||
|
||||
assertPrincipalCreatedFromUserDetails(actual, this.userBuilder.build());
|
||||
}
|
||||
|
||||
@@ -81,9 +79,7 @@ public class SecurityMockServerConfigurersTests extends AbstractMockServerConfig
|
||||
.apply(SecurityMockServerConfigurers.springSecurity()).apply(SecurityMockServerConfigurers.mockUser())
|
||||
.configureClient().defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).build();
|
||||
this.client.get().exchange().expectStatus().isOk();
|
||||
|
||||
Principal actual = this.controller.removePrincipal();
|
||||
|
||||
assertPrincipalCreatedFromUserDetails(actual, this.userBuilder.build());
|
||||
}
|
||||
|
||||
@@ -91,9 +87,7 @@ public class SecurityMockServerConfigurersTests extends AbstractMockServerConfig
|
||||
public void mockUserStringWhenLocalThenSuccess() {
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockUser(this.userBuilder.build().getUsername())).get()
|
||||
.exchange().expectStatus().isOk();
|
||||
|
||||
Principal actual = this.controller.removePrincipal();
|
||||
|
||||
assertPrincipalCreatedFromUserDetails(actual, this.userBuilder.build());
|
||||
}
|
||||
|
||||
@@ -103,9 +97,7 @@ public class SecurityMockServerConfigurersTests extends AbstractMockServerConfig
|
||||
this.client
|
||||
.mutateWith(SecurityMockServerConfigurers.mockUser("admin").password("secret").roles("USER", "ADMIN"))
|
||||
.get().exchange().expectStatus().isOk();
|
||||
|
||||
Principal actual = this.controller.removePrincipal();
|
||||
|
||||
assertPrincipalCreatedFromUserDetails(actual, this.userBuilder.build());
|
||||
}
|
||||
|
||||
@@ -114,9 +106,7 @@ public class SecurityMockServerConfigurersTests extends AbstractMockServerConfig
|
||||
UserDetails userDetails = this.userBuilder.build();
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.mockUser(userDetails)).get().exchange().expectStatus()
|
||||
.isOk();
|
||||
|
||||
Principal actual = this.controller.removePrincipal();
|
||||
|
||||
assertPrincipalCreatedFromUserDetails(actual, this.userBuilder.build());
|
||||
}
|
||||
|
||||
@@ -124,9 +114,7 @@ public class SecurityMockServerConfigurersTests extends AbstractMockServerConfig
|
||||
public void csrfWhenMutateWithThenDisablesCsrf() {
|
||||
this.client.post().exchange().expectStatus().isEqualTo(HttpStatus.FORBIDDEN).expectBody()
|
||||
.consumeWith((b) -> assertThat(new String(b.getResponseBody())).contains("CSRF"));
|
||||
|
||||
this.client.mutateWith(SecurityMockServerConfigurers.csrf()).post().exchange().expectStatus().isOk();
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -134,9 +122,7 @@ public class SecurityMockServerConfigurersTests extends AbstractMockServerConfig
|
||||
this.client = WebTestClient.bindToController(this.controller).webFilter(new CsrfWebFilter())
|
||||
.apply(SecurityMockServerConfigurers.springSecurity()).apply(SecurityMockServerConfigurers.csrf())
|
||||
.configureClient().build();
|
||||
|
||||
this.client.get().exchange().expectStatus().isOk();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-8
@@ -45,7 +45,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
||||
/**
|
||||
* @author Rob Winch
|
||||
*/
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
@WebAppConfiguration
|
||||
@@ -66,7 +65,6 @@ public class Sec2935Tests {
|
||||
public void postProcessorUserNoUser() throws Exception {
|
||||
this.mvc.perform(get("/admin/abc").with(user("user").roles("ADMIN", "USER"))).andExpect(status().isNotFound())
|
||||
.andExpect(authenticated().withUsername("user"));
|
||||
|
||||
this.mvc.perform(get("/admin/abc")).andExpect(status().isUnauthorized()).andExpect(unauthenticated());
|
||||
}
|
||||
|
||||
@@ -74,7 +72,6 @@ public class Sec2935Tests {
|
||||
public void postProcessorUserOtherUser() throws Exception {
|
||||
this.mvc.perform(get("/admin/abc").with(user("user1").roles("ADMIN", "USER"))).andExpect(status().isNotFound())
|
||||
.andExpect(authenticated().withUsername("user1"));
|
||||
|
||||
this.mvc.perform(get("/admin/abc").with(user("user2").roles("USER"))).andExpect(status().isForbidden())
|
||||
.andExpect(authenticated().withUsername("user2"));
|
||||
}
|
||||
@@ -84,7 +81,6 @@ public class Sec2935Tests {
|
||||
public void postProcessorUserWithMockUser() throws Exception {
|
||||
this.mvc.perform(get("/admin/abc").with(user("user1").roles("ADMIN", "USER"))).andExpect(status().isNotFound())
|
||||
.andExpect(authenticated().withUsername("user1"));
|
||||
|
||||
this.mvc.perform(get("/admin/abc")).andExpect(status().isForbidden())
|
||||
.andExpect(authenticated().withUsername("user"));
|
||||
}
|
||||
@@ -94,10 +90,8 @@ public class Sec2935Tests {
|
||||
public void defaultRequest() throws Exception {
|
||||
this.mvc = MockMvcBuilders.webAppContextSetup(this.context).apply(springSecurity())
|
||||
.defaultRequest(get("/").with(user("default"))).build();
|
||||
|
||||
this.mvc.perform(get("/admin/abc").with(user("user1").roles("ADMIN", "USER"))).andExpect(status().isNotFound())
|
||||
.andExpect(authenticated().withUsername("user1"));
|
||||
|
||||
this.mvc.perform(get("/admin/abc")).andExpect(status().isForbidden())
|
||||
.andExpect(authenticated().withUsername("default"));
|
||||
}
|
||||
@@ -108,10 +102,8 @@ public class Sec2935Tests {
|
||||
public void defaultRequestOverridesWithMockUser() throws Exception {
|
||||
this.mvc = MockMvcBuilders.webAppContextSetup(this.context).apply(springSecurity())
|
||||
.defaultRequest(get("/").with(user("default"))).build();
|
||||
|
||||
this.mvc.perform(get("/admin/abc").with(user("user1").roles("ADMIN", "USER"))).andExpect(status().isNotFound())
|
||||
.andExpect(authenticated().withUsername("user1"));
|
||||
|
||||
this.mvc.perform(get("/admin/abc")).andExpect(status().isForbidden())
|
||||
.andExpect(authenticated().withUsername("default"));
|
||||
}
|
||||
|
||||
-7
@@ -54,7 +54,6 @@ public class SecurityMockMvcRequestBuildersFormLoginTests {
|
||||
MockHttpServletRequest request = formLogin().buildRequest(this.servletContext);
|
||||
CsrfToken token = (CsrfToken) request
|
||||
.getAttribute(CsrfRequestPostProcessor.TestCsrfTokenRepository.TOKEN_ATTR_NAME);
|
||||
|
||||
assertThat(request.getParameter("username")).isEqualTo("user");
|
||||
assertThat(request.getParameter("password")).isEqualTo("password");
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
@@ -67,10 +66,8 @@ public class SecurityMockMvcRequestBuildersFormLoginTests {
|
||||
public void custom() {
|
||||
MockHttpServletRequest request = formLogin("/login").user("username", "admin").password("password", "secret")
|
||||
.buildRequest(this.servletContext);
|
||||
|
||||
CsrfToken token = (CsrfToken) request
|
||||
.getAttribute(CsrfRequestPostProcessor.TestCsrfTokenRepository.TOKEN_ATTR_NAME);
|
||||
|
||||
assertThat(request.getParameter("username")).isEqualTo("admin");
|
||||
assertThat(request.getParameter("password")).isEqualTo("secret");
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
@@ -82,10 +79,8 @@ public class SecurityMockMvcRequestBuildersFormLoginTests {
|
||||
public void customWithUriVars() {
|
||||
MockHttpServletRequest request = formLogin().loginProcessingUrl("/uri-login/{var1}/{var2}", "val1", "val2")
|
||||
.user("username", "admin").password("password", "secret").buildRequest(this.servletContext);
|
||||
|
||||
CsrfToken token = (CsrfToken) request
|
||||
.getAttribute(CsrfRequestPostProcessor.TestCsrfTokenRepository.TOKEN_ATTR_NAME);
|
||||
|
||||
assertThat(request.getParameter("username")).isEqualTo("admin");
|
||||
assertThat(request.getParameter("password")).isEqualTo("secret");
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
@@ -104,7 +99,6 @@ public class SecurityMockMvcRequestBuildersFormLoginTests {
|
||||
given(postProcessor.postProcessRequest(any())).willAnswer((i) -> i.getArgument(0));
|
||||
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new Object())
|
||||
.defaultRequest(MockMvcRequestBuilders.get("/").with(postProcessor)).build();
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(formLogin()).andReturn();
|
||||
assertThat(mvcResult.getRequest().getMethod()).isEqualTo(HttpMethod.POST.name());
|
||||
assertThat(mvcResult.getRequest().getHeader("Accept"))
|
||||
@@ -121,7 +115,6 @@ public class SecurityMockMvcRequestBuildersFormLoginTests {
|
||||
public void usesAcceptMediaForContentNegotiation() {
|
||||
MockHttpServletRequest request = formLogin("/login").user("username", "admin").password("password", "secret")
|
||||
.buildRequest(this.servletContext);
|
||||
|
||||
assertThat(request.getHeader("Accept")).isEqualTo(MediaType.APPLICATION_FORM_URLENCODED_VALUE);
|
||||
}
|
||||
|
||||
|
||||
-7
@@ -52,10 +52,8 @@ public class SecurityMockMvcRequestBuildersFormLogoutTests {
|
||||
@Test
|
||||
public void defaults() {
|
||||
MockHttpServletRequest request = logout().buildRequest(this.servletContext);
|
||||
|
||||
CsrfToken token = (CsrfToken) request
|
||||
.getAttribute(CsrfRequestPostProcessor.TestCsrfTokenRepository.TOKEN_ATTR_NAME);
|
||||
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
assertThat(request.getParameter(token.getParameterName())).isEqualTo(token.getToken());
|
||||
assertThat(request.getRequestURI()).isEqualTo("/logout");
|
||||
@@ -64,10 +62,8 @@ public class SecurityMockMvcRequestBuildersFormLogoutTests {
|
||||
@Test
|
||||
public void custom() {
|
||||
MockHttpServletRequest request = logout("/admin/logout").buildRequest(this.servletContext);
|
||||
|
||||
CsrfToken token = (CsrfToken) request
|
||||
.getAttribute(CsrfRequestPostProcessor.TestCsrfTokenRepository.TOKEN_ATTR_NAME);
|
||||
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
assertThat(request.getParameter(token.getParameterName())).isEqualTo(token.getToken());
|
||||
assertThat(request.getRequestURI()).isEqualTo("/admin/logout");
|
||||
@@ -77,10 +73,8 @@ public class SecurityMockMvcRequestBuildersFormLogoutTests {
|
||||
public void customWithUriVars() {
|
||||
MockHttpServletRequest request = logout().logoutUrl("/uri-logout/{var1}/{var2}", "val1", "val2")
|
||||
.buildRequest(this.servletContext);
|
||||
|
||||
CsrfToken token = (CsrfToken) request
|
||||
.getAttribute(CsrfRequestPostProcessor.TestCsrfTokenRepository.TOKEN_ATTR_NAME);
|
||||
|
||||
assertThat(request.getMethod()).isEqualTo("POST");
|
||||
assertThat(request.getParameter(token.getParameterName())).isEqualTo(token.getToken());
|
||||
assertThat(request.getRequestURI()).isEqualTo("/uri-logout/val1/val2");
|
||||
@@ -97,7 +91,6 @@ public class SecurityMockMvcRequestBuildersFormLogoutTests {
|
||||
given(postProcessor.postProcessRequest(any())).willAnswer((i) -> i.getArgument(0));
|
||||
MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new Object())
|
||||
.defaultRequest(MockMvcRequestBuilders.get("/").with(postProcessor)).build();
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(logout()).andReturn();
|
||||
assertThat(mvcResult.getRequest().getMethod()).isEqualTo(HttpMethod.POST.name());
|
||||
assertThat(mvcResult.getRequest().getHeader("Accept"))
|
||||
|
||||
-1
@@ -74,7 +74,6 @@ public class SecurityMockMvcRequestPostProcessorsAuthenticationTests {
|
||||
@Test
|
||||
public void userDetails() {
|
||||
authentication(this.authentication).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
|
||||
-4
@@ -45,20 +45,16 @@ public class SecurityMockMvcRequestPostProcessorsCertificateTests {
|
||||
@Test
|
||||
public void x509SingleCertificate() {
|
||||
MockHttpServletRequest postProcessedRequest = x509(this.certificate).postProcessRequest(this.request);
|
||||
|
||||
X509Certificate[] certificates = (X509Certificate[]) postProcessedRequest
|
||||
.getAttribute("javax.servlet.request.X509Certificate");
|
||||
|
||||
assertThat(certificates).containsOnly(this.certificate);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void x509ResourceName() throws Exception {
|
||||
MockHttpServletRequest postProcessedRequest = x509("rod.cer").postProcessRequest(this.request);
|
||||
|
||||
X509Certificate[] certificates = (X509Certificate[]) postProcessedRequest
|
||||
.getAttribute("javax.servlet.request.X509Certificate");
|
||||
|
||||
assertThat(certificates).hasSize(1);
|
||||
assertThat(certificates[0].getSubjectDN().getName())
|
||||
.isEqualTo("CN=rod, OU=Spring Security, O=Spring Framework");
|
||||
|
||||
-2
@@ -155,12 +155,10 @@ public class SecurityMockMvcRequestPostProcessorsCsrfTests {
|
||||
public void csrfWhenUsedThenDoesNotImpactOriginalRepository() throws Exception {
|
||||
// @formatter:off
|
||||
this.mockMvc.perform(post("/").with(csrf()));
|
||||
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
HttpSessionCsrfTokenRepository repo = new HttpSessionCsrfTokenRepository();
|
||||
CsrfToken token = repo.generateToken(request);
|
||||
repo.saveToken(token, request, new MockHttpServletResponse());
|
||||
|
||||
MockHttpServletRequestBuilder requestWithCsrf = post("/")
|
||||
.param(token.getParameterName(), token.getToken())
|
||||
.session((MockHttpSession) request.getSession());
|
||||
|
||||
-6
@@ -55,7 +55,6 @@ public class SecurityMockMvcRequestPostProcessorsDigestTests {
|
||||
public void setup() {
|
||||
this.password = "password";
|
||||
this.request = new MockHttpServletRequest();
|
||||
|
||||
this.entryPoint = new DigestAuthenticationEntryPoint();
|
||||
this.entryPoint.setKey("key");
|
||||
this.entryPoint.setRealmName("Spring Security");
|
||||
@@ -74,7 +73,6 @@ public class SecurityMockMvcRequestPostProcessorsDigestTests {
|
||||
@Test
|
||||
public void digestWithFilter() throws Exception {
|
||||
MockHttpServletRequest postProcessedRequest = digest().postProcessRequest(this.request);
|
||||
|
||||
assertThat(extractUser()).isEqualTo("user");
|
||||
}
|
||||
|
||||
@@ -82,7 +80,6 @@ public class SecurityMockMvcRequestPostProcessorsDigestTests {
|
||||
public void digestWithFilterCustomUsername() throws Exception {
|
||||
String username = "admin";
|
||||
MockHttpServletRequest postProcessedRequest = digest(username).postProcessRequest(this.request);
|
||||
|
||||
assertThat(extractUser()).isEqualTo(username);
|
||||
}
|
||||
|
||||
@@ -92,7 +89,6 @@ public class SecurityMockMvcRequestPostProcessorsDigestTests {
|
||||
this.password = "secret";
|
||||
MockHttpServletRequest postProcessedRequest = digest(username).password(this.password)
|
||||
.postProcessRequest(this.request);
|
||||
|
||||
assertThat(extractUser()).isEqualTo(username);
|
||||
}
|
||||
|
||||
@@ -102,7 +98,6 @@ public class SecurityMockMvcRequestPostProcessorsDigestTests {
|
||||
this.entryPoint.setRealmName("Custom");
|
||||
MockHttpServletRequest postProcessedRequest = digest(username).realm(this.entryPoint.getRealmName())
|
||||
.postProcessRequest(this.request);
|
||||
|
||||
assertThat(extractUser()).isEqualTo(username);
|
||||
}
|
||||
|
||||
@@ -111,7 +106,6 @@ public class SecurityMockMvcRequestPostProcessorsDigestTests {
|
||||
String username = "admin";
|
||||
MockHttpServletRequest postProcessedRequest = digest(username).realm("Invalid")
|
||||
.postProcessRequest(this.request);
|
||||
|
||||
assertThat(extractUser()).isNull();
|
||||
}
|
||||
|
||||
|
||||
-6
@@ -95,7 +95,6 @@ public class SecurityMockMvcRequestPostProcessorsJwtTests {
|
||||
@Test
|
||||
public void jwtWhenUsingDefaultsThenProducesDefaultJwtAuthentication() {
|
||||
jwt().postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -111,7 +110,6 @@ public class SecurityMockMvcRequestPostProcessorsJwtTests {
|
||||
public void jwtWhenProvidingBuilderConsumerThenProducesJwtAuthentication() {
|
||||
String name = new String("user");
|
||||
jwt().jwt((jwt) -> jwt.subject(name)).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -124,7 +122,6 @@ public class SecurityMockMvcRequestPostProcessorsJwtTests {
|
||||
public void jwtWhenProvidingCustomAuthoritiesThenProducesJwtAuthentication() {
|
||||
jwt().jwt((jwt) -> jwt.claim("scope", "ignored authorities")).authorities(this.authority1, this.authority2)
|
||||
.postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -135,7 +132,6 @@ public class SecurityMockMvcRequestPostProcessorsJwtTests {
|
||||
@Test
|
||||
public void jwtWhenProvidingScopedAuthoritiesThenProducesJwtAuthentication() {
|
||||
jwt().jwt((jwt) -> jwt.claim("scope", "scoped authorities")).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -147,7 +143,6 @@ public class SecurityMockMvcRequestPostProcessorsJwtTests {
|
||||
public void jwtWhenProvidingGrantedAuthoritiesThenProducesJwtAuthentication() {
|
||||
jwt().jwt((jwt) -> jwt.claim("scope", "ignored authorities"))
|
||||
.authorities((jwt) -> Arrays.asList(this.authority1)).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -158,7 +153,6 @@ public class SecurityMockMvcRequestPostProcessorsJwtTests {
|
||||
public void jwtWhenProvidingPreparedJwtThenUsesItForAuthentication() {
|
||||
Jwt originalToken = TestJwts.jwt().header("header1", "value1").subject("some_user").build();
|
||||
jwt().jwt(originalToken).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
|
||||
-5
@@ -93,14 +93,12 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2ClientTests {
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenUsingDefaultsThenException() throws Exception {
|
||||
|
||||
assertThatCode(() -> oauth2Client().postProcessRequest(new MockHttpServletRequest()))
|
||||
.isInstanceOf(IllegalArgumentException.class).hasMessageContaining("ClientRegistration");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenUsingDefaultsThenProducesDefaultAuthorizedClient() throws Exception {
|
||||
|
||||
this.mvc.perform(get("/access-token").with(oauth2Client("registration-id")))
|
||||
.andExpect(content().string("access-token"));
|
||||
this.mvc.perform(get("/client-id").with(oauth2Client("registration-id")))
|
||||
@@ -109,7 +107,6 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2ClientTests {
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenClientRegistrationThenUses() throws Exception {
|
||||
|
||||
ClientRegistration clientRegistration = TestClientRegistrations.clientRegistration()
|
||||
.registrationId("registration-id").clientId("client-id").build();
|
||||
this.mvc.perform(get("/client-id").with(oauth2Client().clientRegistration(clientRegistration)))
|
||||
@@ -118,7 +115,6 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2ClientTests {
|
||||
|
||||
@Test
|
||||
public void oauth2ClientWhenClientRegistrationConsumerThenUses() throws Exception {
|
||||
|
||||
this.mvc.perform(get("/client-id")
|
||||
.with(oauth2Client("registration-id").clientRegistration((c) -> c.clientId("client-id"))))
|
||||
.andExpect(content().string("client-id"));
|
||||
@@ -141,7 +137,6 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2ClientTests {
|
||||
public void oauth2ClientWhenUsedOnceThenDoesNotAffectRemainingTests() throws Exception {
|
||||
this.mvc.perform(get("/client-id").with(oauth2Client("registration-id")))
|
||||
.andExpect(content().string("test-client"));
|
||||
|
||||
OAuth2AuthorizedClient client = new OAuth2AuthorizedClient(TestClientRegistrations.clientRegistration().build(),
|
||||
"sub", TestOAuth2AccessTokens.noScopes());
|
||||
OAuth2AuthorizedClientRepository repository = this.context.getBean(OAuth2AuthorizedClientRepository.class);
|
||||
|
||||
-7
@@ -88,14 +88,12 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2LoginTests {
|
||||
|
||||
@Test
|
||||
public void oauth2LoginWhenUsingDefaultsThenProducesDefaultAuthentication() throws Exception {
|
||||
|
||||
this.mvc.perform(get("/name").with(oauth2Login())).andExpect(content().string("user"));
|
||||
this.mvc.perform(get("/admin/id-token/name").with(oauth2Login())).andExpect(status().isForbidden());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void oauth2LoginWhenUsingDefaultsThenProducesDefaultAuthorizedClient() throws Exception {
|
||||
|
||||
this.mvc.perform(get("/client-id").with(oauth2Login())).andExpect(content().string("test-client"));
|
||||
}
|
||||
|
||||
@@ -119,10 +117,8 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2LoginTests {
|
||||
Collections.singletonMap("custom-attribute", "test-subject"), "custom-attribute");
|
||||
this.mvc.perform(get("/attributes/custom-attribute").with(oauth2Login().oauth2User(oauth2User)))
|
||||
.andExpect(content().string("test-subject"));
|
||||
|
||||
this.mvc.perform(get("/name").with(oauth2Login().oauth2User(oauth2User)))
|
||||
.andExpect(content().string("test-subject"));
|
||||
|
||||
this.mvc.perform(get("/client-name").with(oauth2Login().oauth2User(oauth2User)))
|
||||
.andExpect(content().string("test-subject"));
|
||||
}
|
||||
@@ -138,7 +134,6 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2LoginTests {
|
||||
public void oauth2LoginWhenOAuth2UserSpecifiedThenLastCalledTakesPrecedence() throws Exception {
|
||||
OAuth2User oauth2User = new DefaultOAuth2User(AuthorityUtils.createAuthorityList("SCOPE_read"),
|
||||
Collections.singletonMap("username", "user"), "username");
|
||||
|
||||
this.mvc.perform(get("/attributes/sub")
|
||||
.with(oauth2Login().attributes((a) -> a.put("sub", "bar")).oauth2User(oauth2User)))
|
||||
.andExpect(status().isOk()).andExpect(content().string("no-attribute"));
|
||||
@@ -193,14 +188,12 @@ public class SecurityMockMvcRequestPostProcessorsOAuth2LoginTests {
|
||||
@GetMapping("/attributes/{attribute}")
|
||||
String attributes(@AuthenticationPrincipal OAuth2User oauth2User,
|
||||
@PathVariable("attribute") String attribute) {
|
||||
|
||||
return Optional.ofNullable((String) oauth2User.getAttribute(attribute)).orElse("no-attribute");
|
||||
}
|
||||
|
||||
@GetMapping("/admin/scopes")
|
||||
List<String> scopes(
|
||||
@AuthenticationPrincipal(expression = "authorities") Collection<GrantedAuthority> authorities) {
|
||||
|
||||
return authorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
-6
@@ -94,14 +94,12 @@ public class SecurityMockMvcRequestPostProcessorsOidcLoginTests {
|
||||
|
||||
@Test
|
||||
public void oidcLoginWhenUsingDefaultsThenProducesDefaultAuthentication() throws Exception {
|
||||
|
||||
this.mvc.perform(get("/name").with(oidcLogin())).andExpect(content().string("user"));
|
||||
this.mvc.perform(get("/admin/id-token/name").with(oidcLogin())).andExpect(status().isForbidden());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void oidcLoginWhenUsingDefaultsThenProducesDefaultAuthorizedClient() throws Exception {
|
||||
|
||||
this.mvc.perform(get("/access-token").with(oidcLogin())).andExpect(content().string("access-token"));
|
||||
}
|
||||
|
||||
@@ -128,12 +126,9 @@ public class SecurityMockMvcRequestPostProcessorsOidcLoginTests {
|
||||
OidcUser oidcUser = new DefaultOidcUser(AuthorityUtils.commaSeparatedStringToAuthorityList("SCOPE_read"),
|
||||
OidcIdToken.withTokenValue("id-token").claim("custom-attribute", "test-subject").build(),
|
||||
"custom-attribute");
|
||||
|
||||
this.mvc.perform(get("/id-token/custom-attribute").with(oidcLogin().oidcUser(oidcUser)))
|
||||
.andExpect(content().string("test-subject"));
|
||||
|
||||
this.mvc.perform(get("/name").with(oidcLogin().oidcUser(oidcUser))).andExpect(content().string("test-subject"));
|
||||
|
||||
this.mvc.perform(get("/client-name").with(oidcLogin().oidcUser(oidcUser)))
|
||||
.andExpect(content().string("test-subject"));
|
||||
}
|
||||
@@ -143,7 +138,6 @@ public class SecurityMockMvcRequestPostProcessorsOidcLoginTests {
|
||||
public void oidcLoginWhenOidcUserSpecifiedThenLastCalledTakesPrecedence() throws Exception {
|
||||
OidcUser oidcUser = new DefaultOidcUser(AuthorityUtils.createAuthorityList("SCOPE_read"),
|
||||
TestOidcIdTokens.idToken().build());
|
||||
|
||||
this.mvc.perform(get("/id-token/sub").with(oidcLogin().idToken((i) -> i.subject("foo")).oidcUser(oidcUser)))
|
||||
.andExpect(status().isOk()).andExpect(content().string("subject"));
|
||||
this.mvc.perform(get("/id-token/sub").with(oidcLogin().oidcUser(oidcUser).idToken((i) -> i.subject("bar"))))
|
||||
|
||||
-5
@@ -82,7 +82,6 @@ public class SecurityMockMvcRequestPostProcessorsOpaqueTokenTests {
|
||||
|
||||
@Test
|
||||
public void opaqueTokenWhenUsingDefaultsThenProducesDefaultAuthentication() throws Exception {
|
||||
|
||||
this.mvc.perform(get("/name").with(opaqueToken())).andExpect(content().string("user"));
|
||||
this.mvc.perform(get("/admin/scopes").with(opaqueToken())).andExpect(status().isForbidden());
|
||||
}
|
||||
@@ -100,7 +99,6 @@ public class SecurityMockMvcRequestPostProcessorsOpaqueTokenTests {
|
||||
OAuth2AuthenticatedPrincipal principal = mock(OAuth2AuthenticatedPrincipal.class);
|
||||
given(principal.getName()).willReturn("ben");
|
||||
given(principal.getAuthorities()).willReturn(authorities);
|
||||
|
||||
this.mvc.perform(get("/name").with(opaqueToken().principal(principal))).andExpect(content().string("ben"));
|
||||
}
|
||||
|
||||
@@ -109,7 +107,6 @@ public class SecurityMockMvcRequestPostProcessorsOpaqueTokenTests {
|
||||
public void opaqueTokenWhenPrincipalSpecifiedThenLastCalledTakesPrecedence() throws Exception {
|
||||
OAuth2AuthenticatedPrincipal principal = TestOAuth2AuthenticatedPrincipals
|
||||
.active((a) -> a.put("scope", "user"));
|
||||
|
||||
this.mvc.perform(get("/opaque-token/sub")
|
||||
.with(opaqueToken().attributes((a) -> a.put("sub", "foo")).principal(principal)))
|
||||
.andExpect(status().isOk()).andExpect(content().string((String) principal.getAttribute("sub")));
|
||||
@@ -147,14 +144,12 @@ public class SecurityMockMvcRequestPostProcessorsOpaqueTokenTests {
|
||||
@GetMapping("/opaque-token/{attribute}")
|
||||
String tokenAttribute(@AuthenticationPrincipal OAuth2AuthenticatedPrincipal principal,
|
||||
@PathVariable("attribute") String attribute) {
|
||||
|
||||
return principal.getAttribute(attribute);
|
||||
}
|
||||
|
||||
@GetMapping("/admin/scopes")
|
||||
List<String> scopes(
|
||||
@AuthenticationPrincipal(expression = "authorities") Collection<GrantedAuthority> authorities) {
|
||||
|
||||
return authorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
-1
@@ -73,7 +73,6 @@ public class SecurityMockMvcRequestPostProcessorsSecurityContextTests {
|
||||
@Test
|
||||
public void userDetails() {
|
||||
securityContext(this.expectedContext).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
|
||||
-3
@@ -68,9 +68,7 @@ public class SecurityMockMvcRequestPostProcessorsTestSecurityContextTests {
|
||||
@Test
|
||||
public void testSecurityContextSaves() {
|
||||
TestSecurityContextHolder.setContext(this.context);
|
||||
|
||||
testSecurityContext().postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(eq(this.context), eq(this.request), any(HttpServletResponse.class));
|
||||
}
|
||||
|
||||
@@ -78,7 +76,6 @@ public class SecurityMockMvcRequestPostProcessorsTestSecurityContextTests {
|
||||
@Test
|
||||
public void testSecurityContextNoContext() {
|
||||
testSecurityContext().postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository, never()).saveContext(any(SecurityContext.class), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
}
|
||||
|
||||
-1
@@ -75,7 +75,6 @@ public class SecurityMockMvcRequestPostProcessorsUserDetailsTests {
|
||||
@Test
|
||||
public void userDetails() {
|
||||
user(this.userDetails).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
|
||||
-8
@@ -81,9 +81,7 @@ public class SecurityMockMvcRequestPostProcessorsUserTests {
|
||||
@Test
|
||||
public void userWithDefaults() {
|
||||
String username = "userabc";
|
||||
|
||||
user(username).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -96,9 +94,7 @@ public class SecurityMockMvcRequestPostProcessorsUserTests {
|
||||
@Test
|
||||
public void userWithCustom() {
|
||||
String username = "customuser";
|
||||
|
||||
user(username).roles("CUSTOM", "ADMIN").password("newpass").postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -112,9 +108,7 @@ public class SecurityMockMvcRequestPostProcessorsUserTests {
|
||||
@Test
|
||||
public void userCustomAuthoritiesVarargs() {
|
||||
String username = "customuser";
|
||||
|
||||
user(username).authorities(this.authority1, this.authority2).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
@@ -130,9 +124,7 @@ public class SecurityMockMvcRequestPostProcessorsUserTests {
|
||||
@Test
|
||||
public void userCustomAuthoritiesList() {
|
||||
String username = "customuser";
|
||||
|
||||
user(username).authorities(Arrays.asList(this.authority1, this.authority2)).postProcessRequest(this.request);
|
||||
|
||||
verify(this.repository).saveContext(this.contextCaptor.capture(), eq(this.request),
|
||||
any(HttpServletResponse.class));
|
||||
SecurityContext context = this.contextCaptor.getValue();
|
||||
|
||||
-3
@@ -69,7 +69,6 @@ public class Gh3409Tests {
|
||||
this.mockMvc
|
||||
.perform(get("/public/")
|
||||
.with(securityContext(new SecurityContextImpl())));
|
||||
|
||||
this.mockMvc
|
||||
.perform(get("/public/"))
|
||||
.andExpect(unauthenticated());
|
||||
@@ -82,7 +81,6 @@ public class Gh3409Tests {
|
||||
this.mockMvc
|
||||
.perform(get("/")
|
||||
.with(securityContext(new SecurityContextImpl())));
|
||||
|
||||
this.mockMvc
|
||||
.perform(get("/"))
|
||||
.andExpect(unauthenticated());
|
||||
@@ -104,7 +102,6 @@ public class Gh3409Tests {
|
||||
.formLogin().and()
|
||||
.httpBasic();
|
||||
// @formatter:on
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-7
@@ -63,10 +63,8 @@ public class SecurityMockMvcConfigurerTests {
|
||||
public void beforeMockMvcCreatedOverrideBean() throws Exception {
|
||||
returnFilterBean();
|
||||
SecurityMockMvcConfigurer configurer = new SecurityMockMvcConfigurer(this.filter);
|
||||
|
||||
configurer.afterConfigurerAdded(this.builder);
|
||||
configurer.beforeMockMvcCreated(this.builder, this.context);
|
||||
|
||||
assertFilterAdded(this.filter);
|
||||
verify(this.servletContext).setAttribute(BeanIds.SPRING_SECURITY_FILTER_CHAIN, this.filter);
|
||||
}
|
||||
@@ -75,27 +73,22 @@ public class SecurityMockMvcConfigurerTests {
|
||||
public void beforeMockMvcCreatedBean() throws Exception {
|
||||
returnFilterBean();
|
||||
SecurityMockMvcConfigurer configurer = new SecurityMockMvcConfigurer();
|
||||
|
||||
configurer.afterConfigurerAdded(this.builder);
|
||||
configurer.beforeMockMvcCreated(this.builder, this.context);
|
||||
|
||||
assertFilterAdded(this.beanFilter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void beforeMockMvcCreatedNoBean() throws Exception {
|
||||
SecurityMockMvcConfigurer configurer = new SecurityMockMvcConfigurer(this.filter);
|
||||
|
||||
configurer.afterConfigurerAdded(this.builder);
|
||||
configurer.beforeMockMvcCreated(this.builder, this.context);
|
||||
|
||||
assertFilterAdded(this.filter);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException.class)
|
||||
public void beforeMockMvcCreatedNoFilter() {
|
||||
SecurityMockMvcConfigurer configurer = new SecurityMockMvcConfigurer();
|
||||
|
||||
configurer.afterConfigurerAdded(this.builder);
|
||||
configurer.beforeMockMvcCreated(this.builder, this.context);
|
||||
}
|
||||
|
||||
-2
@@ -59,7 +59,6 @@ public class SecurityMockMvcConfigurersTests {
|
||||
public void applySpringSecurityWhenAddFilterFirstThenFilterFirst() throws Exception {
|
||||
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).addFilters(this.noOpFilter)
|
||||
.apply(springSecurity()).build();
|
||||
|
||||
mockMvc.perform(get("/")).andExpect(status().isOk());
|
||||
}
|
||||
|
||||
@@ -73,7 +72,6 @@ public class SecurityMockMvcConfigurersTests {
|
||||
public void applySpringSecurityWhenAddFilterSecondThenSecurityFirst() throws Exception {
|
||||
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).apply(springSecurity())
|
||||
.addFilters(this.noOpFilter).build();
|
||||
|
||||
mockMvc.perform(get("/")).andExpect(status().is4xxClientError());
|
||||
}
|
||||
|
||||
|
||||
-1
@@ -115,7 +115,6 @@ public class CustomConfigAuthenticationTests {
|
||||
return new InMemoryUserDetailsManager(user);
|
||||
}
|
||||
// @formatter:on
|
||||
|
||||
@Bean
|
||||
SecurityContextRepository securityContextRepository() {
|
||||
HttpSessionSecurityContextRepository repo = new HttpSessionSecurityContextRepository();
|
||||
|
||||
-6
@@ -98,7 +98,6 @@ public class WebTestUtilsTests {
|
||||
}
|
||||
|
||||
// getSecurityContextRepository
|
||||
|
||||
@Test
|
||||
public void getSecurityContextRepositoryNoWac() {
|
||||
assertThat(WebTestUtils.getSecurityContextRepository(this.request))
|
||||
@@ -131,31 +130,26 @@ public class WebTestUtilsTests {
|
||||
@Test
|
||||
public void findFilterNoMatchingFilters() {
|
||||
loadConfig(PartialSecurityConfig.class);
|
||||
|
||||
assertThat(WebTestUtils.findFilter(this.request, SecurityContextPersistenceFilter.class)).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findFilterNoSpringSecurityFilterChainInContext() {
|
||||
loadConfig(NoSecurityConfig.class);
|
||||
|
||||
CsrfFilter toFind = new CsrfFilter(new HttpSessionCsrfTokenRepository());
|
||||
FilterChainProxy springSecurityFilterChain = new FilterChainProxy(
|
||||
new DefaultSecurityFilterChain(AnyRequestMatcher.INSTANCE, toFind));
|
||||
this.request.getServletContext().setAttribute(BeanIds.SPRING_SECURITY_FILTER_CHAIN, springSecurityFilterChain);
|
||||
|
||||
assertThat(WebTestUtils.findFilter(this.request, toFind.getClass())).isEqualTo(toFind);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findFilterExplicitWithSecurityFilterInContext() {
|
||||
loadConfig(SecurityConfigWithDefaults.class);
|
||||
|
||||
CsrfFilter toFind = new CsrfFilter(new HttpSessionCsrfTokenRepository());
|
||||
FilterChainProxy springSecurityFilterChain = new FilterChainProxy(
|
||||
new DefaultSecurityFilterChain(AnyRequestMatcher.INSTANCE, toFind));
|
||||
this.request.getServletContext().setAttribute(BeanIds.SPRING_SECURITY_FILTER_CHAIN, springSecurityFilterChain);
|
||||
|
||||
assertThat(WebTestUtils.findFilter(this.request, toFind.getClass())).isSameAs(toFind);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user