|
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