|
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;
|
@@ -122,7 +124,6 @@ public void onAuthenticationFailure(HttpServletRequest request, HttpServletRespo
|
122 | 124 | .userInfoEndpoint()
|
123 | 125 | .userAuthoritiesMapper(createAuthoritiesMapper())
|
124 | 126 | .oidcUserService(createOidcUserService());
|
125 |
| - |
126 | 127 | }
|
127 | 128 |
|
128 | 129 | @Override
|
@@ -246,7 +247,12 @@ protected OidcUserService createOidcUserService() {
|
246 | 247 | return new OidcUserService() {
|
247 | 248 | @Override
|
248 | 249 | public OidcUser loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException {
|
249 |
| - OidcUser user = super.loadUser(userRequest); |
| 250 | + OidcUser user; |
| 251 | + try { |
| 252 | + user = super.loadUser(userRequest); |
| 253 | + } catch (IllegalArgumentException ex) { |
| 254 | + throw new OAuth2AuthenticationException(new OAuth2Error(OAuth2ErrorCodes.INVALID_REQUEST), "Error while loading user info", ex); |
| 255 | + } |
250 | 256 | String nameAttributeKey = environment.getProperty("proxy.openid.username-attribute", "email");
|
251 | 257 | return new CustomNameOidcUser(new HashSet<>(user.getAuthorities()), user.getIdToken(), user.getUserInfo(), nameAttributeKey);
|
252 | 258 | }
|
|
0 commit comments