Skip to content

Commit 82ae4db

Browse files
committed
Update Multi Tenancy Sample to Convert Jwts
Issue gh-7346
1 parent d7f7e9d commit 82ae4db

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

samples/boot/oauth2resourceserver-multitenancy/src/main/java/sample/OAuth2ResourceServerController.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
*/
1616
package sample;
1717

18-
import org.springframework.security.oauth2.server.resource.authentication.AbstractOAuth2TokenAuthenticationToken;
18+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
19+
import org.springframework.security.oauth2.core.OAuth2AuthenticatedPrincipal;
1920
import org.springframework.web.bind.annotation.GetMapping;
2021
import org.springframework.web.bind.annotation.PathVariable;
2122
import org.springframework.web.bind.annotation.RestController;
@@ -27,8 +28,8 @@
2728
public class OAuth2ResourceServerController {
2829

2930
@GetMapping("/{tenantId}")
30-
public String index(AbstractOAuth2TokenAuthenticationToken token, @PathVariable("tenantId") String tenantId) {
31-
String subject = (String) token.getTokenAttributes().get("sub");
31+
public String index(@AuthenticationPrincipal OAuth2AuthenticatedPrincipal token, @PathVariable("tenantId") String tenantId) {
32+
String subject = token.getAttribute("sub");
3233
return String.format("Hello, %s for %s!", subject, tenantId);
3334
}
3435

samples/boot/oauth2resourceserver-multitenancy/src/main/java/sample/OAuth2ResourceServerSecurityConfiguration.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
import org.springframework.security.oauth2.jwt.JwtDecoder;
3131
import org.springframework.security.oauth2.jwt.NimbusJwtDecoder;
3232
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider;
33-
import org.springframework.security.oauth2.server.resource.authentication.OAuth2IntrospectionAuthenticationProvider;
33+
import org.springframework.security.oauth2.server.resource.authentication.JwtBearerTokenAuthenticationConverter;
34+
import org.springframework.security.oauth2.server.resource.authentication.OpaqueTokenAuthenticationProvider;
3435
import org.springframework.security.oauth2.server.resource.introspection.NimbusOpaqueTokenIntrospector;
3536
import org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector;
3637

@@ -84,13 +85,15 @@ AuthenticationManagerResolver<HttpServletRequest> multitenantAuthenticationManag
8485

8586
AuthenticationManager jwt() {
8687
JwtDecoder jwtDecoder = NimbusJwtDecoder.withJwkSetUri(this.jwkSetUri).build();
87-
return new JwtAuthenticationProvider(jwtDecoder)::authenticate;
88+
JwtAuthenticationProvider authenticationProvider = new JwtAuthenticationProvider(jwtDecoder);
89+
authenticationProvider.setJwtAuthenticationConverter(new JwtBearerTokenAuthenticationConverter());
90+
return authenticationProvider::authenticate;
8891
}
8992

9093
AuthenticationManager opaque() {
9194
OpaqueTokenIntrospector introspectionClient =
9295
new NimbusOpaqueTokenIntrospector(this.introspectionUri,
9396
this.introspectionClientId, this.introspectionClientSecret);
94-
return new OAuth2IntrospectionAuthenticationProvider(introspectionClient)::authenticate;
97+
return new OpaqueTokenAuthenticationProvider(introspectionClient)::authenticate;
9598
}
9699
}

0 commit comments

Comments
 (0)