|
56 | 56 | import org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter; |
57 | 57 | import org.springframework.security.oauth2.core.AuthorizationGrantType; |
58 | 58 | import org.springframework.security.oauth2.core.OAuth2AuthenticationException; |
| 59 | +import org.springframework.security.oauth2.core.OAuth2Error; |
| 60 | +import org.springframework.security.oauth2.core.OAuth2ErrorCodes; |
59 | 61 | import org.springframework.security.oauth2.core.oidc.OidcIdToken; |
60 | 62 | import org.springframework.security.oauth2.core.oidc.OidcUserInfo; |
61 | 63 | import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser; |
@@ -123,7 +125,6 @@ public void onAuthenticationFailure(HttpServletRequest request, HttpServletRespo |
123 | 125 | .userInfoEndpoint() |
124 | 126 | .userAuthoritiesMapper(createAuthoritiesMapper()) |
125 | 127 | .oidcUserService(createOidcUserService()); |
126 | | - |
127 | 128 | } |
128 | 129 |
|
129 | 130 | @Override |
@@ -247,7 +248,12 @@ protected OidcUserService createOidcUserService() { |
247 | 248 | return new OidcUserService() { |
248 | 249 | @Override |
249 | 250 | public OidcUser loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException { |
250 | | - OidcUser user = super.loadUser(userRequest); |
| 251 | + OidcUser user; |
| 252 | + try { |
| 253 | + user = super.loadUser(userRequest); |
| 254 | + } catch (IllegalArgumentException ex) { |
| 255 | + throw new OAuth2AuthenticationException(new OAuth2Error(OAuth2ErrorCodes.INVALID_REQUEST), "Error while loading user info", ex); |
| 256 | + } |
251 | 257 | String nameAttributeKey = environment.getProperty("proxy.openid.username-attribute", "email"); |
252 | 258 | return new CustomNameOidcUser(new HashSet<>(user.getAuthorities()), user.getIdToken(), user.getUserInfo(), nameAttributeKey); |
253 | 259 | } |
|
0 commit comments