Skip to content

Commit b774e91

Browse files
committed
Polish BearerTokenAuthenticationConverter
Issue gh-8840
1 parent 31f310f commit b774e91

File tree

4 files changed

+25
-31
lines changed

4 files changed

+25
-31
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurer.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@
8080
* authentication failures are handled
8181
* <li>{@link #bearerTokenResolver(BearerTokenResolver)} - customizes how to resolve a
8282
* bearer token from the request</li>
83-
* <li>{@link #bearerTokenAuthenticationConverter(AuthenticationConverter)}</li> -
84-
* customizes how to convert a bear token authentication from the request
83+
* <li>{@link #authenticationConverter(AuthenticationConverter)}</li> - customizes how to
84+
* convert a bearer token authentication from the request
8585
* <li>{@link #jwt(Customizer)} - enables Jwt-encoded bearer token support</li>
8686
* <li>{@link #opaqueToken(Customizer)} - enables opaque bearer token support</li>
8787
* </ul>
@@ -195,8 +195,7 @@ public OAuth2ResourceServerConfigurer<H> bearerTokenResolver(BearerTokenResolver
195195
return this;
196196
}
197197

198-
public OAuth2ResourceServerConfigurer<H> bearerTokenAuthenticationConverter(
199-
AuthenticationConverter authenticationConverter) {
198+
public OAuth2ResourceServerConfigurer<H> authenticationConverter(AuthenticationConverter authenticationConverter) {
200199
Assert.notNull(authenticationConverter, "authenticationConverter cannot be null");
201200
this.authenticationConverter = authenticationConverter;
202201
return this;
@@ -266,7 +265,7 @@ public void configure(H http) {
266265
resolver = (request) -> authenticationManager;
267266
}
268267

269-
this.authenticationConverter = getBearerTokenAuthenticationConverter();
268+
this.authenticationConverter = getAuthenticationConverter();
270269

271270
BearerTokenAuthenticationFilter filter = new BearerTokenAuthenticationFilter(resolver);
272271
filter.setAuthenticationConverter(this.authenticationConverter);
@@ -363,7 +362,7 @@ BearerTokenResolver getBearerTokenResolver() {
363362
return this.bearerTokenResolver;
364363
}
365364

366-
AuthenticationConverter getBearerTokenAuthenticationConverter() {
365+
AuthenticationConverter getAuthenticationConverter() {
367366
if (this.authenticationConverter == null) {
368367
if (this.context.getBeanNamesForType(BearerTokenAuthenticationConverter.class).length > 0) {
369368
this.authenticationConverter = this.context.getBean(BearerTokenAuthenticationConverter.class);

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurerTests.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -732,8 +732,8 @@ public void getBearerTokenAuthenticationConverterWhenDuplicateConverterBeansAndA
732732
context.registerBean("converterTwo", BearerTokenAuthenticationConverter.class, () -> converterBean);
733733
this.spring.context(context).autowire();
734734
OAuth2ResourceServerConfigurer oauth2 = new OAuth2ResourceServerConfigurer(context);
735-
oauth2.bearerTokenAuthenticationConverter(converter);
736-
assertThat(oauth2.getBearerTokenAuthenticationConverter()).isEqualTo(converter);
735+
oauth2.authenticationConverter(converter);
736+
assertThat(oauth2.getAuthenticationConverter()).isEqualTo(converter);
737737
}
738738

739739
@Test
@@ -751,16 +751,15 @@ public void getBearerTokenAuthenticationConverterWhenConverterBeanAndAnotherOnTh
751751
context.registerBean(BearerTokenAuthenticationConverter.class, () -> converterBean);
752752
this.spring.context(context).autowire();
753753
OAuth2ResourceServerConfigurer oauth2 = new OAuth2ResourceServerConfigurer(context);
754-
oauth2.bearerTokenAuthenticationConverter(converter);
755-
assertThat(oauth2.getBearerTokenAuthenticationConverter()).isEqualTo(converter);
754+
oauth2.authenticationConverter(converter);
755+
assertThat(oauth2.getAuthenticationConverter()).isEqualTo(converter);
756756
}
757757

758758
@Test
759759
public void getBearerTokenAuthenticationConverterWhenNoConverterSpecifiedThenTheDefaultIsUsed() {
760760
ApplicationContext context = this.spring.context(new GenericWebApplicationContext()).getContext();
761761
OAuth2ResourceServerConfigurer oauth2 = new OAuth2ResourceServerConfigurer(context);
762-
assertThat(oauth2.getBearerTokenAuthenticationConverter())
763-
.isInstanceOf(BearerTokenAuthenticationConverter.class);
762+
assertThat(oauth2.getAuthenticationConverter()).isInstanceOf(BearerTokenAuthenticationConverter.class);
764763
}
765764

766765
@Test
@@ -770,7 +769,7 @@ public void getBearerTokenAuthenticationConverterWhenConverterBeanRegisteredThen
770769
context.registerBean(BearerTokenAuthenticationConverter.class, () -> converterBean);
771770
this.spring.context(context).autowire();
772771
OAuth2ResourceServerConfigurer oauth2 = new OAuth2ResourceServerConfigurer(context);
773-
assertThat(oauth2.getBearerTokenAuthenticationConverter()).isEqualTo(converterBean);
772+
assertThat(oauth2.getAuthenticationConverter()).isEqualTo(converterBean);
774773

775774
}
776775

@@ -783,7 +782,7 @@ public void getBearerTokenAuthenticationConverterWhenOnlyResolverBeanRegisteredT
783782
this.spring.context(context).autowire();
784783
OAuth2ResourceServerConfigurer oauth2 = new OAuth2ResourceServerConfigurer(context);
785784
BearerTokenAuthenticationToken bearerTokenAuthenticationToken = (BearerTokenAuthenticationToken) oauth2
786-
.getBearerTokenAuthenticationConverter().convert(servletRequest);
785+
.getAuthenticationConverter().convert(servletRequest);
787786
String token = bearerTokenAuthenticationToken.getToken();
788787
assertThat(token).isEqualTo("bearer customToken");
789788

oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/authentication/BearerTokenAuthenticationConverter.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,9 @@
3636
*/
3737
public final class BearerTokenAuthenticationConverter implements AuthenticationConverter {
3838

39-
private AuthenticationDetailsSource<HttpServletRequest, ?> authenticationDetailsSource = new WebAuthenticationDetailsSource();
40-
41-
private BearerTokenResolver bearerTokenResolver;
39+
private BearerTokenResolver bearerTokenResolver = new DefaultBearerTokenResolver();
4240

43-
public BearerTokenAuthenticationConverter() {
44-
this.bearerTokenResolver = new DefaultBearerTokenResolver();
45-
}
41+
private AuthenticationDetailsSource<HttpServletRequest, ?> authenticationDetailsSource = new WebAuthenticationDetailsSource();
4642

4743
@Override
4844
public BearerTokenAuthenticationToken convert(HttpServletRequest request) {

oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/web/BearerTokenAuthenticationFilter.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,17 @@ public void setBearerTokenResolver(BearerTokenResolver bearerTokenResolver) {
153153
((BearerTokenAuthenticationConverter) this.authenticationConverter).setBearerTokenResolver(bearerTokenResolver);
154154
}
155155

156+
/**
157+
* Set the {@link AuthenticationConverter} to use. Defaults to
158+
* {@link BearerTokenAuthenticationConverter}.
159+
* @param authenticationConverter the {@code AuthenticationConverter} to use
160+
* @since 5.5
161+
*/
162+
public void setAuthenticationConverter(AuthenticationConverter authenticationConverter) {
163+
Assert.notNull(authenticationConverter, "authenticationConverter cannot be null");
164+
this.authenticationConverter = authenticationConverter;
165+
}
166+
156167
/**
157168
* Set the {@link AuthenticationEntryPoint} to use. Defaults to
158169
* {@link BearerTokenAuthenticationEntryPoint}.
@@ -174,15 +185,4 @@ public void setAuthenticationFailureHandler(final AuthenticationFailureHandler a
174185
this.authenticationFailureHandler = authenticationFailureHandler;
175186
}
176187

177-
/**
178-
* Set the {@link AuthenticationConverter} to use. Defaults to
179-
* {@link BearerTokenAuthenticationConverter}.
180-
* @param authenticationConverter the {@code AuthenticationConverter} to use
181-
* @since 5.5
182-
*/
183-
public void setAuthenticationConverter(AuthenticationConverter authenticationConverter) {
184-
Assert.notNull(authenticationConverter, "authenticationConverter cannot be null");
185-
this.authenticationConverter = authenticationConverter;
186-
}
187-
188188
}

0 commit comments

Comments
 (0)