Spring Security 3多用户登录实现之十一 退出

     Spring Security的退出功能由LogoutFilter过滤器实现,只需要一段简单的配置就可以在项目中实现退出功能,如下示

 

 

<logout logout-url="/logout" logout-success-url="/login"/>

 

    1.logout-url表示退出的URL地址

  2.logout-success-url表示退出成功后应该转向的URL地址,默认实现类是根据这个URL构造一个SimpleUrlLogoutSuccessHandler类

 

    根据这段配置Spring Security会生成一个LogoutFilter,并将设置的属性相应的注入LogoutFilter中,LogoutFitler中还包括一个LogoutHandler的列表,每个实现LogoutHandler接口的类都表示需要在退出时完成的事情,诸如清除记录自动登录凭证相关信息的Cookie,致Session无效,清除持久化存储中记录的自动登录凭证相关数据,前提是你使用的持久化存储来保存自动登录凭证相关数据的。

 

    如果配置logout-success-url无法满足需求,希望能再做点其它事情,还可以实现LogoutSuccessHandler,用来处理特定的退出成功后希望完成的事情。这里的需求因为是多种类型的用户登录,所以针对每个不同类型的用户退出操作也各有不同,后台登录用户退出应该转向后台登录界面,前台登录用户退出应该转向前台登录界面,所以我编写了一个特定的实现LogoutSuccessHandler的MultipleLogoutSuccessHandler,判断的依据主要是根据AuthenticationToken的类型来的,记得前面讲过针对后台登录使用的是BackendAuthenticationToken,前台登录使用的是ForendAuthenticationToken,所以这里就可以根据不同的AuthenticationToken来实现不同的退出成功转向的操作。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值