acegi和cas整合的退出问题

本文详细解析了在使用CAS认证时遇到的登出不彻底问题。指出即使客户端进行了登出操作,但由于未正确销毁服务器端的票根,用户仍能访问受保护资源。文章提供了通过配置HTTPS登出URL来确保服务器端也销毁票根,从而实现完全登出的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值