Update to Spring Framework 5.0.1.BUILD-SNAPSHOT

Fixes gh-4633
This commit is contained in:
Rob Winch 2017-10-16 13:38:21 -05:00
parent a7d054c9f3
commit 96f6368214
23 changed files with 84 additions and 40 deletions

View File

@ -40,7 +40,7 @@ public class SpringSecurityCoreVersion {
*/ */
public static final long SERIAL_VERSION_UID = 500L; public static final long SERIAL_VERSION_UID = 500L;
static final String MIN_SPRING_VERSION = "5.0.0.RELEASE"; static final String MIN_SPRING_VERSION = "5.0.1.BUILD-SNAPSHOT";
static { static {
performVersionChecks(); performVersionChecks();

View File

@ -1,7 +1,7 @@
dependencyManagement { dependencyManagement {
imports { imports {
mavenBom 'io.projectreactor:reactor-bom:Bismuth-RELEASE' mavenBom 'io.projectreactor:reactor-bom:Bismuth-RELEASE'
mavenBom 'org.springframework:spring-framework-bom:5.0.0.RELEASE' mavenBom 'org.springframework:spring-framework-bom:5.0.1.BUILD-SNAPSHOT'
mavenBom 'org.springframework.data:spring-data-releasetrain:Kay-RELEASE' mavenBom 'org.springframework.data:spring-data-releasetrain:Kay-RELEASE'
} }
dependencies { dependencies {

View File

@ -16,6 +16,7 @@
package org.springframework.security.test.web.reactive.server; package org.springframework.security.test.web.reactive.server;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest.BaseBuilder; import org.springframework.mock.http.server.reactive.MockServerHttpRequest.BaseBuilder;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebHandler; import org.springframework.web.server.WebHandler;
@ -39,7 +40,7 @@ public class WebTestHandler {
} }
public WebHandlerResult exchange(BaseBuilder<?> baseBuilder) { public WebHandlerResult exchange(BaseBuilder<?> baseBuilder) {
ServerWebExchange exchange = baseBuilder.toExchange(); ServerWebExchange exchange = MockServerWebExchange.from(baseBuilder.build());
return exchange(exchange); return exchange(exchange);
} }

View File

@ -22,6 +22,7 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
@ -67,7 +68,7 @@ public class DefaultServerRedirectStrategyTests {
@Test @Test
public void sendRedirectWhenNoContextThenStatusAndLocationSet() { public void sendRedirectWhenNoContextThenStatusAndLocationSet() {
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = exchange(MockServerHttpRequest.get("/"));
this.strategy.sendRedirect(this.exchange, this.location).block(); this.strategy.sendRedirect(this.exchange, this.location).block();
@ -78,7 +79,7 @@ public class DefaultServerRedirectStrategyTests {
@Test @Test
public void sendRedirectWhenContextPathSetThenStatusAndLocationSet() { public void sendRedirectWhenContextPathSetThenStatusAndLocationSet() {
this.exchange = MockServerHttpRequest.get("/context/foo").contextPath("/context").toExchange(); this.exchange = exchange(MockServerHttpRequest.get("/context/foo").contextPath("/context"));
this.strategy.sendRedirect(this.exchange, this.location).block(); this.strategy.sendRedirect(this.exchange, this.location).block();
@ -89,7 +90,7 @@ public class DefaultServerRedirectStrategyTests {
@Test @Test
public void sendRedirectWhenContextPathSetAndAbsoluteURLThenStatusAndLocationSet() { public void sendRedirectWhenContextPathSetAndAbsoluteURLThenStatusAndLocationSet() {
this.location = URI.create("https://example.com/foo/bar"); this.location = URI.create("https://example.com/foo/bar");
this.exchange = MockServerHttpRequest.get("/context/foo").contextPath("/context").toExchange(); this.exchange = exchange(MockServerHttpRequest.get("/context/foo").contextPath("/context"));
this.strategy.sendRedirect(this.exchange, this.location).block(); this.strategy.sendRedirect(this.exchange, this.location).block();
@ -100,7 +101,7 @@ public class DefaultServerRedirectStrategyTests {
@Test @Test
public void sendRedirectWhenContextPathSetAndDisabledThenStatusAndLocationSet() { public void sendRedirectWhenContextPathSetAndDisabledThenStatusAndLocationSet() {
this.strategy.setContextRelative(false); this.strategy.setContextRelative(false);
this.exchange = MockServerHttpRequest.get("/context/foo").contextPath("/context").toExchange(); this.exchange = exchange(MockServerHttpRequest.get("/context/foo").contextPath("/context"));
this.strategy.sendRedirect(this.exchange, this.location).block(); this.strategy.sendRedirect(this.exchange, this.location).block();
@ -112,7 +113,7 @@ public class DefaultServerRedirectStrategyTests {
public void sendRedirectWhenCustomStatusThenStatusSet() { public void sendRedirectWhenCustomStatusThenStatusSet() {
HttpStatus status = HttpStatus.MOVED_PERMANENTLY; HttpStatus status = HttpStatus.MOVED_PERMANENTLY;
this.strategy.setHttpStatus(status); this.strategy.setHttpStatus(status);
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = exchange(MockServerHttpRequest.get("/"));
this.strategy.sendRedirect(this.exchange, this.location).block(); this.strategy.sendRedirect(this.exchange, this.location).block();
@ -124,4 +125,8 @@ public class DefaultServerRedirectStrategyTests {
public void setHttpStatusWhenNullLocationThenException() { public void setHttpStatusWhenNullLocationThenException() {
this.strategy.setHttpStatus(null); this.strategy.setHttpStatus(null);
} }
private static MockServerWebExchange exchange(MockServerHttpRequest.BaseBuilder<?> request) {
return MockServerWebExchange.from(request.build());
}
} }

View File

@ -22,6 +22,7 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatcher; import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatcher;
@ -40,7 +41,7 @@ import static org.springframework.security.web.server.DelegatingServerAuthentica
*/ */
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class DelegatingServerAuthenticationEntryPointTests { public class DelegatingServerAuthenticationEntryPointTests {
private ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); private ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
@Mock @Mock
private ServerWebExchangeMatcher matcher1; private ServerWebExchangeMatcher matcher1;

View File

@ -19,6 +19,7 @@ package org.springframework.security.web.server;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ -36,45 +37,49 @@ public class ServerHttpBasicAuthenticationConverterTests {
@Test @Test
public void applyWhenNoAuthorizationHeaderThenEmpty() { public void applyWhenNoAuthorizationHeaderThenEmpty() {
Mono<Authentication> result = converter.apply(request.toExchange()); Mono<Authentication> result = apply(this.request);
assertThat(result.block()).isNull(); assertThat(result.block()).isNull();
} }
@Test @Test
public void applyWhenEmptyAuthorizationHeaderThenEmpty() { public void applyWhenEmptyAuthorizationHeaderThenEmpty() {
Mono<Authentication> result = converter.apply(request.header(HttpHeaders.AUTHORIZATION, "").toExchange()); Mono<Authentication> result = apply(this.request.header(HttpHeaders.AUTHORIZATION, ""));
assertThat(result.block()).isNull(); assertThat(result.block()).isNull();
} }
@Test @Test
public void applyWhenOnlyBasicAuthorizationHeaderThenEmpty() { public void applyWhenOnlyBasicAuthorizationHeaderThenEmpty() {
Mono<Authentication> result = converter.apply(request.header(HttpHeaders.AUTHORIZATION, "Basic ").toExchange()); Mono<Authentication> result = apply(this.request.header(HttpHeaders.AUTHORIZATION, "Basic "));
assertThat(result.block()).isNull(); assertThat(result.block()).isNull();
} }
@Test @Test
public void applyWhenNotBase64ThenEmpty() { public void applyWhenNotBase64ThenEmpty() {
Mono<Authentication> result = converter.apply(request.header(HttpHeaders.AUTHORIZATION, "Basic z").toExchange()); Mono<Authentication> result = apply(this.request.header(HttpHeaders.AUTHORIZATION, "Basic z"));
assertThat(result.block()).isNull(); assertThat(result.block()).isNull();
} }
@Test @Test
public void applyWhenNoSemicolonThenEmpty() { public void applyWhenNoSemicolonThenEmpty() {
Mono<Authentication> result = converter.apply(request.header(HttpHeaders.AUTHORIZATION, "Basic dXNlcg==").toExchange()); Mono<Authentication> result = apply(this.request.header(HttpHeaders.AUTHORIZATION, "Basic dXNlcg=="));
assertThat(result.block()).isNull(); assertThat(result.block()).isNull();
} }
@Test @Test
public void applyWhenUserPasswordThenAuthentication() { public void applyWhenUserPasswordThenAuthentication() {
Mono<Authentication> result = converter.apply(request.header(HttpHeaders.AUTHORIZATION, "Basic dXNlcjpwYXNzd29yZA==").toExchange()); Mono<Authentication> result = apply(this.request.header(HttpHeaders.AUTHORIZATION, "Basic dXNlcjpwYXNzd29yZA=="));
UsernamePasswordAuthenticationToken authentication = result.cast(UsernamePasswordAuthenticationToken.class).block(); UsernamePasswordAuthenticationToken authentication = result.cast(UsernamePasswordAuthenticationToken.class).block();
assertThat(authentication.getPrincipal()).isEqualTo("user"); assertThat(authentication.getPrincipal()).isEqualTo("user");
assertThat(authentication.getCredentials()).isEqualTo("password"); assertThat(authentication.getCredentials()).isEqualTo("password");
} }
private Mono<Authentication> apply(MockServerHttpRequest.BaseBuilder<?> request) {
return this.converter.apply(MockServerWebExchange.from(this.request.build()));
}
} }

View File

@ -23,6 +23,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.server.authentication.HttpBasicServerAuthenticationEntryPoint; import org.springframework.security.web.server.authentication.HttpBasicServerAuthenticationEntryPoint;
@ -53,7 +54,7 @@ public class HttpBasicServerAuthenticationEntryPointTests {
@Test @Test
public void commenceWhenSubscribeThenStatusAndHeaderSet() { public void commenceWhenSubscribeThenStatusAndHeaderSet() {
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = exchange(MockServerHttpRequest.get("/"));
this.entryPoint.commence(this.exchange, this.exception).block(); this.entryPoint.commence(this.exchange, this.exception).block();
@ -66,7 +67,7 @@ public class HttpBasicServerAuthenticationEntryPointTests {
@Test @Test
public void commenceWhenCustomRealmThenStatusAndHeaderSet() { public void commenceWhenCustomRealmThenStatusAndHeaderSet() {
this.entryPoint.setRealm("Custom"); this.entryPoint.setRealm("Custom");
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = exchange(MockServerHttpRequest.get("/"));
this.entryPoint.commence(this.exchange, this.exception).block(); this.entryPoint.commence(this.exchange, this.exception).block();
@ -80,4 +81,9 @@ public class HttpBasicServerAuthenticationEntryPointTests {
public void setRealmWhenNullThenException() { public void setRealmWhenNullThenException() {
this.entryPoint.setRealm(null); this.entryPoint.setRealm(null);
} }
private static MockServerWebExchange exchange(MockServerHttpRequest.BaseBuilder<?> request) {
return MockServerWebExchange.from(request.build());
}
} }

View File

@ -23,6 +23,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.server.ServerRedirectStrategy; import org.springframework.security.web.server.ServerRedirectStrategy;
@ -69,7 +70,7 @@ public class RedirectServerAuthenticationEntryPointTests {
@Test @Test
public void commenceWhenSubscribeThenStatusAndLocationSet() { public void commenceWhenSubscribeThenStatusAndLocationSet() {
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
this.entryPoint.commence(this.exchange, this.exception).block(); this.entryPoint.commence(this.exchange, this.exception).block();
@ -84,7 +85,7 @@ public class RedirectServerAuthenticationEntryPointTests {
when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(result); when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(result);
HttpStatus status = HttpStatus.MOVED_PERMANENTLY; HttpStatus status = HttpStatus.MOVED_PERMANENTLY;
this.entryPoint.setServerRedirectStrategy(this.serverRedirectStrategy); this.entryPoint.setServerRedirectStrategy(this.serverRedirectStrategy);
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
assertThat(this.entryPoint.commence(this.exchange, this.exception)).isEqualTo(result); assertThat(this.entryPoint.commence(this.exchange, this.exception)).isEqualTo(result);
} }

View File

@ -22,6 +22,7 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.web.server.ServerRedirectStrategy; import org.springframework.security.web.server.ServerRedirectStrategy;
import org.springframework.security.web.server.WebFilterExchange; import org.springframework.security.web.server.WebFilterExchange;
@ -74,7 +75,7 @@ public class RedirectServerAuthenticationSuccessHandlerTests {
@Test @Test
public void successWhenSubscribeThenStatusAndLocationSet() { public void successWhenSubscribeThenStatusAndLocationSet() {
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
this.handler.onAuthenticationSuccess(new WebFilterExchange(this.exchange, this.handler.onAuthenticationSuccess(new WebFilterExchange(this.exchange,
this.chain), this.authentication).block(); this.chain), this.authentication).block();
@ -89,7 +90,7 @@ public class RedirectServerAuthenticationSuccessHandlerTests {
Mono<Void> result = Mono.empty(); Mono<Void> result = Mono.empty();
when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(result); when(this.serverRedirectStrategy.sendRedirect(any(), any())).thenReturn(result);
this.handler.setServerRedirectStrategy(this.serverRedirectStrategy); this.handler.setServerRedirectStrategy(this.serverRedirectStrategy);
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
assertThat(this.handler.onAuthenticationSuccess(new WebFilterExchange(this.exchange, assertThat(this.handler.onAuthenticationSuccess(new WebFilterExchange(this.exchange,
this.chain), this.authentication)).isEqualTo(result); this.chain), this.authentication)).isEqualTo(result);

View File

@ -23,6 +23,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.AccessDeniedException;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
@ -56,7 +57,7 @@ public class HttpStatusServerAccessDeniedHandlerTests {
@Test @Test
public void commenceWhenSubscribeThenStatusSet() { public void commenceWhenSubscribeThenStatusSet() {
this.exchange = MockServerHttpRequest.get("/").toExchange(); this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
this.handler.handle(this.exchange, this.exception).block(); this.handler.handle(this.exchange, this.exception).block();

View File

@ -18,6 +18,7 @@ package org.springframework.security.web.server.context;
import org.junit.Test; import org.junit.Test;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
@ -39,7 +40,7 @@ public class AuthenticationReactorContextWebFilterTests {
Principal principal = new TestingAuthenticationToken("user","password", "ROLE_USER"); Principal principal = new TestingAuthenticationToken("user","password", "ROLE_USER");
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
@Test @Test
public void filterWhenExistingContextAndPrincipalNotNullThenContextPopulated() { public void filterWhenExistingContextAndPrincipalNotNullThenContextPopulated() {

View File

@ -22,6 +22,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextImpl; import org.springframework.security.core.context.SecurityContextImpl;
import org.springframework.security.test.web.reactive.server.WebTestHandler; import org.springframework.security.test.web.reactive.server.WebTestHandler;
@ -90,7 +91,7 @@ public class ServerSecurityContextRepositoryWebFilterTests {
when(repository.load(any())).thenReturn(Mono.empty()); when(repository.load(any())).thenReturn(Mono.empty());
filters = WebTestHandler.bindToWebFilters(filter, (e,c) -> e.getPrincipal().flatMap( p-> c.filter(e))) ; filters = WebTestHandler.bindToWebFilters(filter, (e,c) -> e.getPrincipal().flatMap( p-> c.filter(e))) ;
ServerWebExchange exchangeWithPrincipal = this.exchange.toExchange().mutate().principal(Mono.just(principal)).build(); ServerWebExchange exchangeWithPrincipal = MockServerWebExchange.from(exchange.build()).mutate().principal(Mono.just(principal)).build();
WebTestHandler.WebHandlerResult result = filters.exchange(exchangeWithPrincipal); WebTestHandler.WebHandlerResult result = filters.exchange(exchangeWithPrincipal);
verify(repository).load(any()); verify(repository).load(any());

View File

@ -18,6 +18,7 @@ package org.springframework.security.web.server.context;
import org.junit.Test; import org.junit.Test;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextImpl; import org.springframework.security.core.context.SecurityContextImpl;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
@ -31,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*/ */
public class ServerWebExchangeAttributeServerSecurityContextRepositoryTests { public class ServerWebExchangeAttributeServerSecurityContextRepositoryTests {
ServerWebExchangeAttributeServerSecurityContextRepository repository = new ServerWebExchangeAttributeServerSecurityContextRepository(); ServerWebExchangeAttributeServerSecurityContextRepository repository = new ServerWebExchangeAttributeServerSecurityContextRepository();
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
@Test @Test
public void saveAndLoad() { public void saveAndLoad() {

View File

@ -20,6 +20,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
/** /**
@ -31,7 +32,8 @@ import org.springframework.web.server.ServerWebExchange;
public class CacheControlServerHttpHeadersWriterTests { public class CacheControlServerHttpHeadersWriterTests {
CacheControlServerHttpHeadersWriter writer = new CacheControlServerHttpHeadersWriter(); CacheControlServerHttpHeadersWriter writer = new CacheControlServerHttpHeadersWriter();
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange
.from(MockServerHttpRequest.get("/").build());
HttpHeaders headers = exchange.getResponse().getHeaders(); HttpHeaders headers = exchange.getResponse().getHeaders();

View File

@ -26,6 +26,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ -44,7 +45,7 @@ public class CompositeServerHttpHeadersWriterTests {
CompositeServerHttpHeadersWriter writer; CompositeServerHttpHeadersWriter writer;
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
@Before @Before
public void setup() { public void setup() {

View File

@ -20,6 +20,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
/** /**
@ -32,7 +33,8 @@ public class StaticServerHttpHeadersWriterTests {
.header(ContentTypeOptionsServerHttpHeadersWriter.X_CONTENT_OPTIONS, ContentTypeOptionsServerHttpHeadersWriter.NOSNIFF) .header(ContentTypeOptionsServerHttpHeadersWriter.X_CONTENT_OPTIONS, ContentTypeOptionsServerHttpHeadersWriter.NOSNIFF)
.build(); .build();
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange
.from(MockServerHttpRequest.get("/").build());
HttpHeaders headers = exchange.getResponse().getHeaders(); HttpHeaders headers = exchange.getResponse().getHeaders();

View File

@ -23,6 +23,7 @@ import java.util.Arrays;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
/** /**
@ -36,7 +37,7 @@ public class StrictTransportSecurityServerHttpHeadersWriterTests {
@Test @Test
public void writeHttpHeadersWhenHttpsThenWrites() { public void writeHttpHeadersWhenHttpsThenWrites() {
exchange = MockServerHttpRequest.get("https://example.com/").toExchange(); exchange = exchange(MockServerHttpRequest.get("https://example.com/"));
hsts.writeHttpHeaders(exchange); hsts.writeHttpHeaders(exchange);
@ -50,7 +51,7 @@ public class StrictTransportSecurityServerHttpHeadersWriterTests {
public void writeHttpHeadersWhenCustomMaxAgeThenWrites() { public void writeHttpHeadersWhenCustomMaxAgeThenWrites() {
Duration maxAge = Duration.ofDays(1); Duration maxAge = Duration.ofDays(1);
hsts.setMaxAge(maxAge); hsts.setMaxAge(maxAge);
exchange = MockServerHttpRequest.get("https://example.com/").toExchange(); exchange = exchange(MockServerHttpRequest.get("https://example.com/"));
hsts.writeHttpHeaders(exchange); hsts.writeHttpHeaders(exchange);
@ -63,7 +64,7 @@ public class StrictTransportSecurityServerHttpHeadersWriterTests {
@Test @Test
public void writeHttpHeadersWhenCustomIncludeSubDomainsThenWrites() { public void writeHttpHeadersWhenCustomIncludeSubDomainsThenWrites() {
hsts.setIncludeSubDomains(false); hsts.setIncludeSubDomains(false);
exchange = MockServerHttpRequest.get("https://example.com/").toExchange(); exchange = exchange(MockServerHttpRequest.get("https://example.com/"));
hsts.writeHttpHeaders(exchange); hsts.writeHttpHeaders(exchange);
@ -75,7 +76,7 @@ public class StrictTransportSecurityServerHttpHeadersWriterTests {
@Test @Test
public void writeHttpHeadersWhenNullSchemeThenNoHeaders() { public void writeHttpHeadersWhenNullSchemeThenNoHeaders() {
exchange = MockServerHttpRequest.get("/").toExchange(); exchange = exchange(MockServerHttpRequest.get("/"));
hsts.writeHttpHeaders(exchange); hsts.writeHttpHeaders(exchange);
@ -85,11 +86,15 @@ public class StrictTransportSecurityServerHttpHeadersWriterTests {
@Test @Test
public void writeHttpHeadersWhenHttpThenNoHeaders() { public void writeHttpHeadersWhenHttpThenNoHeaders() {
exchange = MockServerHttpRequest.get("http://example.com/").toExchange(); exchange = exchange(MockServerHttpRequest.get("http://example.com/"));
hsts.writeHttpHeaders(exchange); hsts.writeHttpHeaders(exchange);
HttpHeaders headers = exchange.getResponse().getHeaders(); HttpHeaders headers = exchange.getResponse().getHeaders();
assertThat(headers).isEmpty(); assertThat(headers).isEmpty();
} }
private static MockServerWebExchange exchange(MockServerHttpRequest.BaseBuilder<?> request) {
return MockServerWebExchange.from(request.build());
}
} }

View File

@ -20,6 +20,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
/** /**
@ -30,7 +31,8 @@ public class XContentTypeOptionsServerHttpHeadersWriterTests {
ContentTypeOptionsServerHttpHeadersWriter writer = new ContentTypeOptionsServerHttpHeadersWriter(); ContentTypeOptionsServerHttpHeadersWriter writer = new ContentTypeOptionsServerHttpHeadersWriter();
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange
.from(MockServerHttpRequest.get("/").build());
HttpHeaders headers = exchange.getResponse().getHeaders(); HttpHeaders headers = exchange.getResponse().getHeaders();

View File

@ -21,6 +21,7 @@ import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
/** /**
@ -29,7 +30,7 @@ import org.springframework.web.server.ServerWebExchange;
*/ */
public class XFrameOptionsServerHttpHeadersWriterTests { public class XFrameOptionsServerHttpHeadersWriterTests {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = exchange(MockServerHttpRequest.get("/"));
XFrameOptionsServerHttpHeadersWriter writer; XFrameOptionsServerHttpHeadersWriter writer;
@ -81,4 +82,7 @@ public class XFrameOptionsServerHttpHeadersWriterTests {
assertThat(headers.get(XFrameOptionsServerHttpHeadersWriter.X_FRAME_OPTIONS)).containsOnly(headerValue); assertThat(headers.get(XFrameOptionsServerHttpHeadersWriter.X_FRAME_OPTIONS)).containsOnly(headerValue);
} }
private static MockServerWebExchange exchange(MockServerHttpRequest.BaseBuilder<?> request) {
return MockServerWebExchange.from(request.build());
}
} }

View File

@ -20,6 +20,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
/** /**
@ -27,7 +28,7 @@ import org.springframework.web.server.ServerWebExchange;
* @since 5.0 * @since 5.0
*/ */
public class XXssProtectionServerHttpHeadersWriterTests { public class XXssProtectionServerHttpHeadersWriterTests {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/").build());
HttpHeaders headers = exchange.getResponse().getHeaders(); HttpHeaders headers = exchange.getResponse().getHeaders();

View File

@ -27,6 +27,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.reactive.accept.RequestedContentTypeResolver; import org.springframework.web.reactive.accept.RequestedContentTypeResolver;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
@ -131,6 +132,6 @@ public class MediaTypeServerWebExchangeMatcherTests {
} }
private static ServerWebExchange exchange(MediaType... accept) { private static ServerWebExchange exchange(MediaType... accept) {
return MockServerHttpRequest.get("/").accept(accept).toExchange(); return MockServerWebExchange.from(MockServerHttpRequest.get("/").accept(accept).build());
} }
} }

View File

@ -23,7 +23,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.http.server.reactive.MockServerHttpResponse; import org.springframework.mock.http.server.reactive.MockServerHttpResponse;
import org.springframework.mock.http.server.reactive.MockServerWebExchange; import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.session.DefaultWebSessionManager; import org.springframework.web.server.session.DefaultWebSessionManager;
import org.springframework.web.util.pattern.PathPattern; import org.springframework.web.util.pattern.PathPattern;
@ -53,7 +53,7 @@ public class PathMatcherServerWebExchangeMatcherTests {
MockServerHttpRequest request = MockServerHttpRequest.post("/path").build(); MockServerHttpRequest request = MockServerHttpRequest.post("/path").build();
MockServerHttpResponse response = new MockServerHttpResponse(); MockServerHttpResponse response = new MockServerHttpResponse();
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
exchange = request.toExchange(); exchange = MockServerWebExchange.from(request);
path = "/path"; path = "/path";
matcher = new PathPatternParserServerWebExchangeMatcher(pattern); matcher = new PathPatternParserServerWebExchangeMatcher(pattern);

View File

@ -19,6 +19,7 @@ package org.springframework.security.web.server.util.matcher;
import org.junit.Test; import org.junit.Test;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.mock.http.server.reactive.MockServerHttpRequest; import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
import org.springframework.mock.web.server.MockServerWebExchange;
import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.ServerWebExchange;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
@ -33,7 +34,8 @@ import static org.springframework.security.web.server.util.matcher.ServerWebExch
* @since 5.0 * @since 5.0
*/ */
public class ServerWebExchangeMatchersTests { public class ServerWebExchangeMatchersTests {
ServerWebExchange exchange = MockServerHttpRequest.get("/").toExchange(); ServerWebExchange exchange = MockServerWebExchange
.from(MockServerHttpRequest.get("/").build());
@Test @Test
public void pathMatchersWhenSingleAndSamePatternThenMatches() throws Exception { public void pathMatchersWhenSingleAndSamePatternThenMatches() throws Exception {