关于“SpringSecurity3.X--Cas client 配置之配置session-management遇到的问题(1)”请参看http://hanqunfeng.iteye.com/blog/1217703
接着说,按照前文配置的方式,只能迫使用户第一次访问时跳转到指定的“expiredUrl”,但此时,如果你再次访问系统,你会发现,系统会自动重新登录,并跳转到“authenticationSuccessHandler”中指定的“defaultTargetUrl”,相当于重新登录了。
这是为什么呢?
其实,ConcurrentSessionFilter验证用户过期时,只是将当前的session清除并跳转到了“expiredUrl”,并没有将用户注销,所以,当再次访问系统时,由于会有一个新的session,所以会与cas服务器进行握手验证,这实际上就相当于来了一次“单点登录”,所以,要想使用户真正不能访问系统,就需要将用户注销。
那么,该如何做呢?
我采用了一个最简单的方式,就是当跳转到“expiredUrl”后,重定向到“LogoutFilter”的“filterProcessesUrl”,这样就会将客户端从cas上注销。
这种注销方式,只会将当前客户端注销,而不会影响到其它客户端。