跨域重定向时保留标题

时间:2019-01-23 14:45:59

标签: java spring-security jhipster keycloak

我目前正在自定义JHipster应用程序以实现单点注销(使用Keycloak SSO),以便当用户从一个应用程序断开连接时,它将使该应用程序和Keycloak上的会话无效。

I found there中,应用注销后重定向到keycloak注销页面会导致SSO中的用户会话无效。

如果我单击我的应用程序断开连接按钮,那么它将“手动”运行,然后在另一个选项卡中,我进入keycloak的注销页面,我确实注销了,非常完美!

我尝试使用自定义LogoutSuccessHandler在Spring安全性中做同样的事情:

    public class ForwardLogoutWithRedirectSuccessHandler implements LogoutSuccessHandler {

            private String targetUrl;

            public ForwardLogoutWithRedirectSuccessHandler(String targetUrl) {
                    this.targetUrl = targetUrl;
            }

            @Override
            public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
        throws IOException, ServletException {

    if (!this.targetUrl.contains("redirect_uri"))
        this.targetUrl = this.targetUrl + "?redirect_uri=" + request.getHeader(HttpHeaders.ORIGIN);
    response.sendRedirect(this.targetUrl);
            }

        }

问题是重定向时,目标域cookie(先前在登录时设置)未在请求中发送。因此,keycloak注销不起作用。

我精确地说,所有必要的CORS标头都用于标头,凭证,方法...

是因为应该在客户端进行重定向吗?

0 个答案:

没有答案