1

我可以向 Spring Security Logout 添加参数吗?我在 security.xml 中配置了注销请求,如下所示。

<sec:logout invalidate-session="true" logout-success-url="/logoutsuccess.do" logout-url="/logout.do" />

登录时,成功登录后,我正在自定义成功处理程序上验证用户帐户的各个方面,以验证帐户订阅状态、批准/拒绝等,如果任何条件失败,将基于它发送注销请求。我想在注销页面上显示自定义错误消息,因此想将该参数与注销请求一起发送。

4

1 回答 1

2

编写自定义注销处理程序。将属性success-handler-ref放入 xml 配置文件中。

例如

<sec:logout invalidate-session="true" logout-success-url="/logoutsuccess.do" 
  logout-url="/logout.do" 
  success-handler-ref="YourCustomLogoutSuccessHandler"/>

然后扩展SimpleUrlLogoutSuccessHandler或实现LogoutHandler

例如

public class YourCustomLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler {  

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

        //Do what you want to do here
        //....... 

        //below does the 'standard' spring logout handling  
        super.onLogoutSuccess(request, response, authentication);         
    }  
} 

此处显示了另一种执行此操作的方法。这也显示了如何重定向到特定的 url 并手动处理会话管理。

于 2014-06-20T12:44:25.137 回答