|
20 | 20 | */
|
21 | 21 | package eu.openanalytics.containerproxy.auth.impl;
|
22 | 22 |
|
| 23 | +import java.io.IOException; |
23 | 24 | import java.util.ArrayList;
|
24 | 25 | import java.util.Collections;
|
25 | 26 | import java.util.HashSet;
|
|
28 | 29 | import java.util.stream.Collectors;
|
29 | 30 |
|
30 | 31 | import javax.inject.Inject;
|
| 32 | +import javax.servlet.ServletException; |
| 33 | +import javax.servlet.http.HttpServletRequest; |
| 34 | +import javax.servlet.http.HttpServletResponse; |
31 | 35 |
|
32 | 36 | import org.apache.logging.log4j.LogManager;
|
33 | 37 | import org.apache.logging.log4j.Logger;
|
|
36 | 40 | import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
37 | 41 | import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer.AuthorizedUrl;
|
38 | 42 | import org.springframework.security.core.Authentication;
|
| 43 | +import org.springframework.security.core.AuthenticationException; |
39 | 44 | import org.springframework.security.core.GrantedAuthority;
|
40 | 45 | import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
41 | 46 | import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper;
|
|
56 | 61 | import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser;
|
57 | 62 | import org.springframework.security.oauth2.core.oidc.user.OidcUser;
|
58 | 63 | import org.springframework.security.oauth2.core.oidc.user.OidcUserAuthority;
|
| 64 | +import org.springframework.security.web.authentication.AuthenticationFailureHandler; |
59 | 65 |
|
60 | 66 | import eu.openanalytics.containerproxy.auth.IAuthenticationBackend;
|
61 | 67 | import eu.openanalytics.containerproxy.security.FixedDefaultOAuth2AuthorizationRequestResolver;
|
@@ -103,6 +109,18 @@ public void configureHttpSecurity(HttpSecurity http, AuthorizedUrl anyRequestCon
|
103 | 109 | .authorizationEndpoint()
|
104 | 110 | .authorizationRequestResolver(new FixedDefaultOAuth2AuthorizationRequestResolver(clientRegistrationRepo, OAuth2AuthorizationRequestRedirectFilter.DEFAULT_AUTHORIZATION_REQUEST_BASE_URI))
|
105 | 111 | .and()
|
| 112 | + .failureHandler(new AuthenticationFailureHandler() { |
| 113 | + |
| 114 | + @Override |
| 115 | + public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, |
| 116 | + AuthenticationException exception) throws IOException, ServletException { |
| 117 | + |
| 118 | + exception.printStackTrace(); |
| 119 | + response.sendRedirect("/auth-error"); |
| 120 | + |
| 121 | + } |
| 122 | + |
| 123 | + }) |
106 | 124 | .userInfoEndpoint()
|
107 | 125 | .userAuthoritiesMapper(createAuthoritiesMapper())
|
108 | 126 | .oidcUserService(createOidcUserService());
|
|
0 commit comments