|
12 | 12 |
|
13 | 13 | import java.io.IOException; |
14 | 14 | import java.util.Arrays; |
15 | | -import java.util.logging.Filter; |
16 | | -import java.util.logging.LogRecord; |
17 | 15 |
|
18 | 16 | public class ForwardFilter extends GenericFilterBean { |
19 | 17 |
|
20 | 18 | private static final Logger logger = LoggerFactory.getLogger(ForwardFilter.class); |
21 | | - private final String[] allowedRoutes = { "/keyresult", "/objective" }; |
| 19 | + private final String[] allowedRoutes = { "/keyresult", "/objective", "/?state" }; |
22 | 20 |
|
23 | 21 | @Override |
24 | 22 | public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) |
25 | 23 | throws IOException, ServletException { |
26 | 24 | HttpServletRequest request = (HttpServletRequest) servletRequest; |
27 | 25 | String path = request.getRequestURI(); |
28 | | - if (request.getParameter("state") != null) { |
| 26 | + |
| 27 | + if (Arrays.stream(this.allowedRoutes).anyMatch(path::startsWith)) { |
29 | 28 | logger.info(String.format("Keycloak state parameter detected ====> make a forward from '%s' to '%s'", |
30 | 29 | request.getRequestURI(), "/")); |
31 | 30 | servletRequest.getRequestDispatcher("/").forward(servletRequest, servletResponse); |
32 | 31 | return; |
33 | 32 | } |
34 | | - if (Arrays.stream(this.allowedRoutes).anyMatch(path::startsWith)) { |
35 | | - servletRequest.getRequestDispatcher("/").forward(servletRequest, servletResponse); |
36 | | - return; |
37 | | - } |
38 | | - if (request.getParameter("error") != null) { |
39 | | - logger.error(String.format("error from keycloak %s", request.getParameter("error"))); |
40 | | - return; |
41 | | - } |
42 | 33 | logger.debug(String.format("====> pass through the filter '%s'", request.getRequestURI())); |
43 | 34 | filterChain.doFilter(servletRequest, servletResponse); |
44 | 35 | } |
|
0 commit comments