Skip to content

Commit afa2d9c

Browse files
committed
Remove ExchangeFilterFunctions
Issue: gh-5612
1 parent 262c1a7 commit afa2d9c

File tree

11 files changed

+55
-103
lines changed

11 files changed

+55
-103
lines changed

config/src/test/java/org/springframework/security/config/annotation/web/reactive/EnableWebFluxSecurityTests.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@
6868

6969
import static org.assertj.core.api.Assertions.assertThat;
7070
import static org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.csrf;
71-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials.basicAuthenticationCredentials;
72-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.basicAuthentication;
7371

7472
/**
7573
* @author Rob Winch
@@ -122,11 +120,10 @@ public void authenticateWhenBasicThenNoSession() {
122120

123121
WebTestClient client = WebTestClientBuilder
124122
.bindToWebFilters(this.springSecurityFilterChain)
125-
.filter(basicAuthentication())
126123
.build();
127124

128125
FluxExchangeResult<String> result = client.get()
129-
.attributes(basicAuthenticationCredentials("user", "password"))
126+
.headers(headers -> headers.setBasicAuth("user", "password"))
130127
.exchange()
131128
.expectStatus()
132129
.isOk()
@@ -171,13 +168,12 @@ public void defaultPopulatesReactorContextWhenAuthenticating() {
171168
.flatMap( principal -> exchange.getResponse()
172169
.writeWith(Mono.just(toDataBuffer(principal.getName()))))
173170
)
174-
.filter(basicAuthentication())
175171
.build();
176172

177173
client
178174
.get()
179175
.uri("/")
180-
.attributes(basicAuthenticationCredentials("user", "password"))
176+
.headers(headers -> headers.setBasicAuth("user", "password"))
181177
.exchange()
182178
.expectStatus().isOk()
183179
.expectBody(String.class).consumeWith( result -> assertThat(result.getResponseBody()).isEqualTo("user"));
@@ -208,13 +204,12 @@ public void passwordEncoderBeanIsUsed() {
208204
.flatMap( principal -> exchange.getResponse()
209205
.writeWith(Mono.just(toDataBuffer(principal.getName()))))
210206
)
211-
.filter(basicAuthentication())
212207
.build();
213208

214209
client
215210
.get()
216211
.uri("/")
217-
.attributes(basicAuthenticationCredentials("user", "password"))
212+
.headers(headers -> headers.setBasicAuth("user", "password"))
218213
.exchange()
219214
.expectStatus().isOk()
220215
.expectBody(String.class).consumeWith( result -> assertThat(result.getResponseBody()).isEqualTo("user"));

config/src/test/java/org/springframework/security/config/web/server/ExceptionHandlingSpecTests.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import org.springframework.security.web.server.authorization.HttpStatusServerAccessDeniedHandler;
2626
import org.springframework.security.web.server.authorization.ServerAccessDeniedHandler;
2727
import org.springframework.test.web.reactive.server.WebTestClient;
28-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials.basicAuthenticationCredentials;
29-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.basicAuthentication;
3028

3129
/**
3230
* @author Denys Ivano
@@ -96,13 +94,12 @@ public void defaultAccessDeniedHandler() {
9694

9795
WebTestClient client = WebTestClientBuilder
9896
.bindToWebFilters(securityWebFilter)
99-
.filter(basicAuthentication())
10097
.build();
10198

10299
client
103100
.get()
104101
.uri("/admin")
105-
.attributes(basicAuthenticationCredentials("user", "password"))
102+
.headers(headers -> headers.setBasicAuth("user", "password"))
106103
.exchange()
107104
.expectStatus().isForbidden();
108105
}
@@ -122,13 +119,12 @@ public void customAccessDeniedHandler() {
122119

123120
WebTestClient client = WebTestClientBuilder
124121
.bindToWebFilters(securityWebFilter)
125-
.filter(basicAuthentication())
126122
.build();
127123

128124
client
129125
.get()
130126
.uri("/admin")
131-
.attributes(basicAuthenticationCredentials("user", "password"))
127+
.headers(headers -> headers.setBasicAuth("user", "password"))
132128
.exchange()
133129
.expectStatus().isBadRequest();
134130
}

config/src/test/java/org/springframework/security/config/web/server/ServerHttpSecurityTests.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import static org.mockito.BDDMockito.given;
4141
import static org.mockito.Matchers.any;
4242
import static org.mockito.Mockito.when;
43-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.basicAuthentication;
4443

4544
/**
4645
* @author Rob Winch
@@ -92,12 +91,9 @@ public void basic() {
9291

9392
WebTestClient client = buildClient();
9493

95-
EntityExchangeResult<String> result = client
96-
.mutate()
97-
.filter(basicAuthentication("rob", "rob"))
98-
.build()
99-
.get()
94+
EntityExchangeResult<String> result = client.get()
10095
.uri("/")
96+
.headers(headers -> headers.setBasicAuth("rob", "rob"))
10197
.exchange()
10298
.expectStatus().isOk()
10399
.expectHeader().valueMatches(HttpHeaders.CACHE_CONTROL, ".+")

oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/WebClientReactiveAuthorizationCodeTokenResponseClient.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,10 @@
2323
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationExchange;
2424
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponse;
2525
import org.springframework.web.reactive.function.BodyInserters;
26-
import org.springframework.web.reactive.function.client.ExchangeFilterFunctions;
2726
import org.springframework.web.reactive.function.client.WebClient;
2827
import reactor.core.publisher.Mono;
2928

3029
import static org.springframework.security.oauth2.core.web.reactive.function.OAuth2BodyExtractors.oauth2AccessTokenResponse;
31-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials.basicAuthenticationCredentials;
3230

3331
/**
3432
* An implementation of an {@link ReactiveOAuth2AccessTokenResponseClient} that &quot;exchanges&quot;
@@ -49,7 +47,6 @@
4947
*/
5048
public class WebClientReactiveAuthorizationCodeTokenResponseClient implements ReactiveOAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> {
5149
private WebClient webClient = WebClient.builder()
52-
.filter(ExchangeFilterFunctions.basicAuthentication())
5350
.build();
5451

5552
@Override
@@ -66,7 +63,7 @@ public Mono<OAuth2AccessTokenResponse> getTokenResponse(OAuth2AuthorizationCodeG
6663
return this.webClient.post()
6764
.uri(tokenUri)
6865
.accept(MediaType.APPLICATION_JSON)
69-
.attributes(basicAuthenticationCredentials(clientRegistration.getClientId(), clientRegistration.getClientSecret()))
66+
.headers(headers -> headers.setBasicAuth(clientRegistration.getClientId(), clientRegistration.getClientSecret()))
7067
.body(body)
7168
.exchange()
7269
.flatMap(response -> response.body(oauth2AccessTokenResponse()))

samples/boot/hellowebflux-method/src/integration-test/java/sample/HelloWebfluxMethodApplicationITests.java

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,16 @@
1515
*/
1616
package sample;
1717

18-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials.basicAuthenticationCredentials;
19-
20-
import java.util.Map;
2118
import java.util.function.Consumer;
2219

2320
import org.junit.Test;
2421
import org.junit.runner.RunWith;
2522
import org.springframework.beans.factory.annotation.Autowired;
2623
import org.springframework.boot.test.context.SpringBootTest;
24+
import org.springframework.http.HttpHeaders;
2725
import org.springframework.http.HttpStatus;
2826
import org.springframework.test.context.junit4.SpringRunner;
2927
import org.springframework.test.web.reactive.server.WebTestClient;
30-
import org.springframework.web.reactive.function.client.ExchangeFilterFunctions;
3128

3229
/**
3330
* @author Rob Winch
@@ -37,13 +34,8 @@
3734
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
3835
public class HelloWebfluxMethodApplicationITests {
3936

40-
WebTestClient rest;
41-
4237
@Autowired
43-
public void setRest(WebTestClient rest) {
44-
this.rest = rest
45-
.mutateWith((b, h, c) -> b.filter(ExchangeFilterFunctions.basicAuthentication()));
46-
}
38+
WebTestClient rest;
4739

4840

4941
@Test
@@ -60,7 +52,7 @@ public void messageWhenUserThenForbidden() throws Exception {
6052
this.rest
6153
.get()
6254
.uri("/message")
63-
.attributes(robsCredentials())
55+
.headers(robsCredentials())
6456
.exchange()
6557
.expectStatus().isEqualTo(HttpStatus.FORBIDDEN);
6658
}
@@ -70,18 +62,18 @@ public void messageWhenAdminThenOk() throws Exception {
7062
this.rest
7163
.get()
7264
.uri("/message")
73-
.attributes(adminCredentials())
65+
.headers(adminCredentials())
7466
.exchange()
7567
.expectStatus().isOk()
7668
.expectBody(String.class).isEqualTo("Hello World!");
7769
}
7870

79-
private Consumer<Map<String, Object>> robsCredentials() {
80-
return basicAuthenticationCredentials("rob", "rob");
71+
private Consumer<HttpHeaders> robsCredentials() {
72+
return httpHeaders -> httpHeaders.setBasicAuth("rob", "rob");
8173
}
8274

83-
private Consumer<Map<String, Object>> adminCredentials() {
84-
return basicAuthenticationCredentials("admin", "admin");
75+
private Consumer<HttpHeaders> adminCredentials() {
76+
return httpHeaders -> httpHeaders.setBasicAuth("admin", "admin");
8577
}
8678
}
8779

samples/boot/hellowebflux-method/src/test/java/sample/HelloWebfluxMethodApplicationTests.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,15 @@
1717

1818
import static org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.mockUser;
1919
import static org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.springSecurity;
20-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.basicAuthentication;
21-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials.basicAuthenticationCredentials;
2220

23-
import java.util.Map;
2421
import java.util.function.Consumer;
2522

2623
import org.junit.Test;
2724
import org.junit.runner.RunWith;
2825
import org.springframework.beans.factory.annotation.Autowired;
2926
import org.springframework.boot.test.context.SpringBootTest;
3027
import org.springframework.context.ApplicationContext;
28+
import org.springframework.http.HttpHeaders;
3129
import org.springframework.http.HttpStatus;
3230
import org.springframework.security.test.context.support.WithMockUser;
3331
import org.springframework.test.context.junit4.SpringRunner;
@@ -48,7 +46,6 @@ public void setup(ApplicationContext context) {
4846
.bindToApplicationContext(context)
4947
.apply(springSecurity())
5048
.configureClient()
51-
.filter(basicAuthentication())
5249
.build();
5350
}
5451

@@ -68,7 +65,7 @@ public void messageWhenUserThenForbidden() throws Exception {
6865
this.rest
6966
.get()
7067
.uri("/message")
71-
.attributes(robsCredentials())
68+
.headers(robsCredentials())
7269
.exchange()
7370
.expectStatus().isEqualTo(HttpStatus.FORBIDDEN);
7471
}
@@ -78,7 +75,7 @@ public void messageWhenAdminThenOk() throws Exception {
7875
this.rest
7976
.get()
8077
.uri("/message")
81-
.attributes(adminCredentials())
78+
.headers(adminCredentials())
8279
.exchange()
8380
.expectStatus().isOk()
8481
.expectBody(String.class).isEqualTo("Hello World!");
@@ -130,11 +127,11 @@ public void messageWhenMutateWithMockAdminThenOk() throws Exception {
130127
.expectBody(String.class).isEqualTo("Hello World!");
131128
}
132129

133-
private Consumer<Map<String, Object>> robsCredentials() {
134-
return basicAuthenticationCredentials("rob", "rob");
130+
private Consumer<HttpHeaders> robsCredentials() {
131+
return httpHeaders -> httpHeaders.setBasicAuth("rob", "rob");
135132
}
136133

137-
private Consumer<Map<String, Object>> adminCredentials() {
138-
return basicAuthenticationCredentials("admin", "admin");
134+
private Consumer<HttpHeaders> adminCredentials() {
135+
return httpHeaders -> httpHeaders.setBasicAuth("admin", "admin");
139136
}
140137
}

samples/boot/hellowebflux/src/integration-test/java/sample/HelloWebfluxApplicationITests.java

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,15 @@
1515
*/
1616
package sample;
1717

18-
import static org.springframework.web.reactive.function.client.ExchangeFilterFunctions.Credentials.basicAuthenticationCredentials;
19-
20-
import java.util.Map;
2118
import java.util.function.Consumer;
2219

2320
import org.junit.Test;
2421
import org.junit.runner.RunWith;
2522
import org.springframework.beans.factory.annotation.Autowired;
2623
import org.springframework.boot.test.context.SpringBootTest;
24+
import org.springframework.http.HttpHeaders;
2725
import org.springframework.test.context.junit4.SpringRunner;
2826
import org.springframework.test.web.reactive.server.WebTestClient;
29-
import org.springframework.web.reactive.function.client.ExchangeFilterFunctions;
3027

3128
/**
3229
* @author Rob Winch
@@ -36,13 +33,8 @@
3633
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
3734
public class HelloWebfluxApplicationITests {
3835

39-
WebTestClient rest;
40-
4136
@Autowired
42-
public void setRest(WebTestClient rest) {
43-
this.rest = rest
44-
.mutateWith((b, h, c) -> b.filter(ExchangeFilterFunctions.basicAuthentication()));
45-
}
37+
WebTestClient rest;
4638

4739
@Test
4840
public void basicWhenNoCredentialsThenUnauthorized() throws Exception {
@@ -58,7 +50,7 @@ public void basicWhenValidCredentialsThenOk() throws Exception {
5850
this.rest
5951
.get()
6052
.uri("/")
61-
.attributes(userCredentials())
53+
.headers(userCredentials())
6254
.exchange()
6355
.expectStatus().isOk()
6456
.expectBody().json("{\"message\":\"Hello user!\"}");
@@ -69,17 +61,17 @@ public void basicWhenInvalidCredentialsThenUnauthorized() throws Exception {
6961
this.rest
7062
.get()
7163
.uri("/")
72-
.attributes(invalidCredentials())
64+
.headers(invalidCredentials())
7365
.exchange()
7466
.expectStatus().isUnauthorized()
7567
.expectBody().isEmpty();
7668
}
7769

78-
private Consumer<Map<String, Object>> userCredentials() {
79-
return basicAuthenticationCredentials("user", "user");
70+
private Consumer<HttpHeaders> userCredentials() {
71+
return httpHeaders -> httpHeaders.setBasicAuth("user", "user");
8072
}
8173

82-
private Consumer<Map<String, Object>> invalidCredentials() {
83-
return basicAuthenticationCredentials("user", "INVALID");
74+
private Consumer<HttpHeaders> invalidCredentials() {
75+
return httpHeaders -> httpHeaders.setBasicAuth("user", "INVALID");
8476
}
8577
}

0 commit comments

Comments
 (0)