44import org .springframework .http .HttpStatus ;
55import org .springframework .http .ResponseEntity ;
66import org .springframework .security .core .annotation .AuthenticationPrincipal ;
7+ import org .springframework .security .oauth2 .client .authentication .OAuth2AuthenticationToken ;
78import org .springframework .security .oauth2 .client .authentication .OAuth2LoginAuthenticationToken ;
89import org .springframework .security .oauth2 .core .oidc .OidcIdToken ;
910import org .springframework .security .oauth2 .core .oidc .user .OidcUser ;
11+ import org .springframework .security .oauth2 .core .user .OAuth2User ;
1012import org .springframework .web .bind .annotation .GetMapping ;
1113import org .springframework .web .bind .annotation .PostMapping ;
1214import org .springframework .web .bind .annotation .RestController ;
@@ -27,9 +29,9 @@ public ResponseEntity<?> getUser(Principal principal) {
2729 if (principal == null ) {
2830 return new ResponseEntity <>("" , HttpStatus .OK );
2931 }
30- if (principal instanceof OAuth2LoginAuthenticationToken ) {
31- OidcUser authentication = (OidcUser ) principal ;
32- Map <String , Object > details = authentication .getUserInfo (). getClaims ();
32+ if (principal instanceof OAuth2AuthenticationToken ) {
33+ OAuth2User authentication = (( OAuth2AuthenticationToken ) principal ). getPrincipal () ;
34+ Map <String , Object > details = authentication .getAttributes ();
3335 return ResponseEntity .ok ().body (details );
3436 } else {
3537 return ResponseEntity .ok ().body (principal .getName ());
@@ -40,6 +42,7 @@ public ResponseEntity<?> getUser(Principal principal) {
4042 public ResponseEntity <?> logout (HttpServletRequest request ,
4143 @ AuthenticationPrincipal (expression = "idToken" ) OidcIdToken idToken ) {
4244 // send logout URL to client so they can initiate logout - doesn't work from the server side
45+ // Make it easier: https://github.com/spring-projects/spring-security/issues/5540
4346 String logoutUrl = issuerUri + "/v1/logout" ;
4447
4548 Map <String , String > logoutDetails = new HashMap <>();
0 commit comments