代码之家  ›  专栏  ›  技术社区  ›  sree

sping安全性在注销时重定向到另一个上下文

  •  0
  • sree  · 技术社区  · 6 年前

    我正在使用Spring安全性来登录和注销,我的要求是在成功注销后需要重定向到其他上下文。

    <security:logout logout-url="/spring/logout" logout-success-url="/spring1" />
    

    但它并没有重定向到不同的上下文。有什么方法可以重定向吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Alan Hay    6 年前

    您可以注册logoutsuccesshandler并让它执行重定向:

    public class RedirectingLogoutSuccessHandler implements LogoutSuccessHandler {
    
        @Override
        public void onLogoutSuccess(HttpServletRequest request, 
             HttpServletResponse response, Authentication authentication)
                throws IOException, ServletException {
    
            String basePath = request.getScheme() + "://" + request.getServerName()
                    + (request.getServerPort() != 80 ? ":" + request.getServerPort() : "");
            String otherContext = "/spring1";
    
            response.sendRedirect(basePath + "/" + otherContext);
        }
    }
    

    将其注册为bean并将安全配置指向它:

    <logout
      logout-url="/perform_logout"
      success-handler-ref="redirectingLogoutSuccessHandler " />