当用户登陆成功后,点登出后,系统并没有完全登出,因为
j_acegi_logout
销毁的只是
acegi
客户端的
Authentication
对象,但是,如果不关闭页面的情况下,重新打开之前访问的受保护的页面,由于
org.acegisecurity.ui.cas.CasProcessingFilter
这个过滤器会重新找到登录时
CAS
的票根,因为客户端并没有通过
https
的形式退出,所以
CAS
服务器端并没有销毁票根。当获取到票根后,又会重新生成
Authentication
这个对象,所以,就算是点击了退出,也并没有退出。解决办法是,在
acegi
的
logout
这个过滤器中,将
constructor-arg
设置成
<constructor-arg value="https://www-9a5718d7b04:8443/cas/logout"/>
,这样,当用户点击退出后,首先到客户端的
acegi
的
logout
过滤器处理,将
Authentication
这个对象销毁,然后在到
https://www-9a5718d7b04:8443/cas/logout
处理
CAS
服务器端的销毁票根等操作,这样,就完全销毁了这个用户的权限和票根,完成完全退出操作。
acegi和cas整合的退出问题
最新推荐文章于 2022-05-21 10:52:57 发布