Skip to content

Commit 673a2ad

Browse files
committed
Polish oauth2 client ExchangeFilterFunction's
Fixes gh-6355
1 parent d8d9abe commit 673a2ad

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServerOAuth2AuthorizedClientExchangeFilterFunction.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,9 @@ private Mono<OAuth2AuthorizedClient> refreshIfNecessary(ClientRequest request, E
253253
if (isClientCredentialsGrantType(clientRegistration) && hasTokenExpired(authorizedClient)) {
254254
return createRequest(request)
255255
.flatMap(r -> authorizeWithClientCredentials(clientRegistration, r));
256-
} else if (shouldRefresh(authorizedClient)) {
256+
} else if (shouldRefreshToken(authorizedClient)) {
257257
return createRequest(request)
258-
.flatMap(r -> refreshAuthorizedClient(next, authorizedClient, r));
258+
.flatMap(r -> authorizeWithRefreshToken(next, authorizedClient, r));
259259
}
260260
return Mono.just(authorizedClient);
261261
}
@@ -273,8 +273,9 @@ private Mono<OAuth2AuthorizedClient> authorizeWithClientCredentials(ClientRegist
273273
.thenReturn(result));
274274
}
275275

276-
private Mono<OAuth2AuthorizedClient> refreshAuthorizedClient(ExchangeFunction next,
277-
OAuth2AuthorizedClient authorizedClient, OAuth2AuthorizedClientResolver.Request r) {
276+
private Mono<OAuth2AuthorizedClient> authorizeWithRefreshToken(ExchangeFunction next,
277+
OAuth2AuthorizedClient authorizedClient,
278+
OAuth2AuthorizedClientResolver.Request r) {
278279
ServerWebExchange exchange = r.getExchange();
279280
Authentication authentication = r.getAuthentication();
280281
ClientRegistration clientRegistration = authorizedClient
@@ -293,7 +294,7 @@ private Mono<OAuth2AuthorizedClient> refreshAuthorizedClient(ExchangeFunction ne
293294
.thenReturn(result));
294295
}
295296

296-
private boolean shouldRefresh(OAuth2AuthorizedClient authorizedClient) {
297+
private boolean shouldRefreshToken(OAuth2AuthorizedClient authorizedClient) {
297298
if (this.authorizedClientRepository == null) {
298299
return false;
299300
}

oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunction.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ private OAuth2AuthorizedClient getAuthorizedClient(String clientRegistrationId,
333333
throw new IllegalArgumentException("Could not find ClientRegistration with id " + clientRegistrationId);
334334
}
335335
if (isClientCredentialsGrantType(clientRegistration)) {
336-
return getAuthorizedClient(clientRegistration, attrs);
336+
return authorizeWithClientCredentials(clientRegistration, attrs);
337337
}
338338
throw new ClientAuthorizationRequiredException(clientRegistrationId);
339339
}
@@ -342,10 +342,8 @@ private boolean isClientCredentialsGrantType(ClientRegistration clientRegistrati
342342
return AuthorizationGrantType.CLIENT_CREDENTIALS.equals(clientRegistration.getAuthorizationGrantType());
343343
}
344344

345-
346-
private OAuth2AuthorizedClient getAuthorizedClient(ClientRegistration clientRegistration,
347-
Map<String, Object> attrs) {
348-
345+
private OAuth2AuthorizedClient authorizeWithClientCredentials(
346+
ClientRegistration clientRegistration, Map<String, Object> attrs) {
349347
HttpServletRequest request = getRequest(attrs);
350348
HttpServletResponse response = getResponse(attrs);
351349
OAuth2ClientCredentialsGrantRequest clientCredentialsGrantRequest =
@@ -372,16 +370,16 @@ private OAuth2AuthorizedClient getAuthorizedClient(ClientRegistration clientRegi
372370
private Mono<OAuth2AuthorizedClient> authorizedClient(ClientRequest request, ExchangeFunction next, OAuth2AuthorizedClient authorizedClient) {
373371
ClientRegistration clientRegistration = authorizedClient.getClientRegistration();
374372
if (isClientCredentialsGrantType(clientRegistration) && hasTokenExpired(authorizedClient)) {
375-
//Client credentials grant do not have refresh tokens but can expire so we need to get another one
376-
return Mono.fromSupplier(() -> getAuthorizedClient(clientRegistration, request.attributes()));
377-
} else if (shouldRefresh(authorizedClient)) {
378-
return refreshAuthorizedClient(request, next, authorizedClient);
373+
// Client credentials grant do not have refresh tokens but can expire so we need to get another one
374+
return Mono.fromSupplier(() -> authorizeWithClientCredentials(clientRegistration, request.attributes()));
375+
} else if (shouldRefreshToken(authorizedClient)) {
376+
return authorizeWithRefreshToken(request, next, authorizedClient);
379377
}
380378
return Mono.just(authorizedClient);
381379
}
382380

383-
private Mono<OAuth2AuthorizedClient> refreshAuthorizedClient(ClientRequest request, ExchangeFunction next,
384-
OAuth2AuthorizedClient authorizedClient) {
381+
private Mono<OAuth2AuthorizedClient> authorizeWithRefreshToken(ClientRequest request, ExchangeFunction next,
382+
OAuth2AuthorizedClient authorizedClient) {
385383
ClientRegistration clientRegistration = authorizedClient
386384
.getClientRegistration();
387385
String tokenUri = clientRegistration
@@ -407,7 +405,7 @@ private Mono<OAuth2AuthorizedClient> refreshAuthorizedClient(ClientRequest reque
407405
.publishOn(Schedulers.elastic());
408406
}
409407

410-
private boolean shouldRefresh(OAuth2AuthorizedClient authorizedClient) {
408+
private boolean shouldRefreshToken(OAuth2AuthorizedClient authorizedClient) {
411409
if (this.authorizedClientRepository == null) {
412410
return false;
413411
}

0 commit comments

Comments
 (0)