From 10dee339d62c3d6a3ad5732ac3113a214971ef45 Mon Sep 17 00:00:00 2001 From: Andrey Litvitski Date: Sun, 30 Aug 2026 01:05:01 +0300 Subject: [PATCH] Fix parameters converter nullability Closes: gh-19318 Signed-off-by: Andrey Litvitski --- ...actRestClientOAuth2AccessTokenResponseClient.java | 12 ++++++++---- ...lientReactiveOAuth2AccessTokenResponseClient.java | 11 +++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractRestClientOAuth2AccessTokenResponseClient.java b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractRestClientOAuth2AccessTokenResponseClient.java index e487227c2c5..89f98e737a8 100644 --- a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractRestClientOAuth2AccessTokenResponseClient.java +++ b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractRestClientOAuth2AccessTokenResponseClient.java @@ -18,6 +18,8 @@ import java.util.function.Consumer; +import org.jspecify.annotations.Nullable; + import org.springframework.core.convert.converter.Converter; import org.springframework.http.HttpHeaders; import org.springframework.http.converter.FormHttpMessageConverter; @@ -75,7 +77,7 @@ public abstract class AbstractRestClientOAuth2AccessTokenResponseClient headersConverter = new DefaultOAuth2TokenRequestHeadersConverter<>(); - private Converter> parametersConverter = new DefaultOAuth2TokenRequestParametersConverter<>(); + private Converter> parametersConverter = new DefaultOAuth2TokenRequestParametersConverter<>(); private Consumer> parametersCustomizer = (parameters) -> { }; @@ -202,7 +204,8 @@ public final void addHeadersConverter(Converter headersConverter * @param parametersConverter the {@link Converter} used for converting the * {@link AbstractOAuth2AuthorizationGrantRequest} to {@link MultiValueMap} */ - public final void setParametersConverter(Converter> parametersConverter) { + public final void setParametersConverter( + Converter> parametersConverter) { Assert.notNull(parametersConverter, "parametersConverter cannot be null"); if (parametersConverter instanceof DefaultOAuth2TokenRequestParametersConverter) { this.parametersConverter = parametersConverter; @@ -231,9 +234,10 @@ public final void setParametersConverter(Converter> parametersConverter) { + public final void addParametersConverter( + Converter> parametersConverter) { Assert.notNull(parametersConverter, "parametersConverter cannot be null"); - Converter> currentParametersConverter = this.parametersConverter; + Converter> currentParametersConverter = this.parametersConverter; this.parametersConverter = (authorizationGrantRequest) -> { MultiValueMap parameters = currentParametersConverter.convert(authorizationGrantRequest); if (parameters == null) { diff --git a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractWebClientReactiveOAuth2AccessTokenResponseClient.java b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractWebClientReactiveOAuth2AccessTokenResponseClient.java index 93f91890691..ebd7488c5ab 100644 --- a/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractWebClientReactiveOAuth2AccessTokenResponseClient.java +++ b/oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/endpoint/AbstractWebClientReactiveOAuth2AccessTokenResponseClient.java @@ -18,6 +18,7 @@ import java.util.function.Consumer; +import org.jspecify.annotations.Nullable; import reactor.core.publisher.Mono; import org.springframework.core.convert.converter.Converter; @@ -67,7 +68,7 @@ public abstract class AbstractWebClientReactiveOAuth2AccessTokenResponseClient headersConverter = new DefaultOAuth2TokenRequestHeadersConverter<>(); - private Converter> parametersConverter = new DefaultOAuth2TokenRequestParametersConverter<>(); + private Converter> parametersConverter = new DefaultOAuth2TokenRequestParametersConverter<>(); private Consumer> parametersCustomizer = (parameters) -> { }; @@ -184,7 +185,8 @@ public final void addHeadersConverter(Converter headersConverter * {@link AbstractOAuth2AuthorizationGrantRequest} to {@link MultiValueMap} * @since 5.6 */ - public final void setParametersConverter(Converter> parametersConverter) { + public final void setParametersConverter( + Converter> parametersConverter) { Assert.notNull(parametersConverter, "parametersConverter cannot be null"); if (parametersConverter instanceof DefaultOAuth2TokenRequestParametersConverter) { this.parametersConverter = parametersConverter; @@ -214,9 +216,10 @@ public final void setParametersConverter(Converter> parametersConverter) { + public final void addParametersConverter( + Converter> parametersConverter) { Assert.notNull(parametersConverter, "parametersConverter cannot be null"); - Converter> currentParametersConverter = this.parametersConverter; + Converter> currentParametersConverter = this.parametersConverter; this.parametersConverter = (authorizationGrantRequest) -> { MultiValueMap parameters = currentParametersConverter.convert(authorizationGrantRequest); if (parameters == null) {