@@ -2336,35 +2336,30 @@ If this decision must be made at request-time, then you can use an `Authenticati
2336
2336
[source,java,role="primary"]
2337
2337
----
2338
2338
@Bean
2339
- AuthenticationManagerResolver<HttpServletRequest> tokenAuthenticationManagerResolver() {
2340
- BearerTokenResolver bearerToken = new DefaultBearerTokenResolver();
2341
- JwtAuthenticationProvider jwt = jwt();
2342
- OpaqueTokenAuthenticationProvider opaqueToken = opaqueToken();
2343
-
2344
- return request -> {
2345
- if (useJwt(request)) {
2346
- return jwt::authenticate;
2347
- } else {
2348
- return opaqueToken::authenticate;
2349
- }
2350
- }
2339
+ AuthenticationManagerResolver<HttpServletRequest> tokenAuthenticationManagerResolver
2340
+ (JwtDecoder jwtDecoder, OpaqueTokenIntrospector opaqueTokenIntrospector) {
2341
+ AuthenticationManager jwt = new ProviderManager(new JwtAuthenticationProvider(jwtDecoder));
2342
+ AuthenticationManager opaqueToken = new ProviderManager(
2343
+ new OpaqueTokenAuthenticationProvider(opaqueTokenIntrospector));
2344
+ return (request) -> useJwt(request) ? jwt : opaqueToken;
2351
2345
}
2352
2346
----
2353
2347
2354
2348
.Kotlin
2355
2349
[source,kotlin,role="secondary"]
2356
2350
----
2357
2351
@Bean
2358
- fun tokenAuthenticationManagerResolver(): AuthenticationManagerResolver<HttpServletRequest> {
2359
- val bearerToken: BearerTokenResolver = DefaultBearerTokenResolver()
2360
- val jwt: JwtAuthenticationProvider = jwt()
2361
- val opaqueToken: OpaqueTokenAuthenticationProvider = opaqueToken()
2352
+ fun tokenAuthenticationManagerResolver
2353
+ (jwtDecoder: JwtDecoder, opaqueTokenIntrospector: OpaqueTokenIntrospector):
2354
+ AuthenticationManagerResolver<HttpServletRequest> {
2355
+ val jwt = ProviderManager(JwtAuthenticationProvider(jwtDecoder))
2356
+ val opaqueToken = ProviderManager(OpaqueTokenAuthenticationProvider(opaqueTokenIntrospector));
2362
2357
2363
2358
return AuthenticationManagerResolver { request ->
2364
2359
if (useJwt(request)) {
2365
- AuthenticationManager { jwt.authenticate(it) }
2360
+ jwt
2366
2361
} else {
2367
- AuthenticationManager { opaqueToken.authenticate(it) }
2362
+ opaqueToken
2368
2363
}
2369
2364
}
2370
2365
}
0 commit comments