|
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