我刚刚制作了一个 HelloWorld servlet 并在其上实现了 CAS。
我能够毫无问题地登录,并且 CAS 在我的浏览器中设置 3 个 cookie、CASGT,并为 /cas 设置 2 个 JSESSIONID 1,另一个为 /helloWorld
问题是然后我访问https://blah:8443/cas/logout https://blah:8443/cas/logout,我看到注销成功屏幕,但 cookie 仍然在我的浏览器中,所以我没有被注销,我可以再次进入 /helloWorld,而不显示登录屏幕。
你知道我应该怎么做才能让 CAS 删除我注销时创建的 cookie 吗?
提前致谢
CASGT cookie 由 CAS 设置,应由 CAS 取消设置。 CAS 注销程序的工作原理如下:
您实际上进入了 CAS 注销页面。该页面应该知道您要从中注销的应用程序。一种方法是从应用程序重定向到 CAS 注销页面,并提供重定向返回 URL 作为参数。
您的 cookie 将被删除,然后您将通过 POST 请求重定向到您的应用程序。
SingleSignOutFilter
捕获一个特殊参数“logoutRequest”,并实际上破坏它从一开始就持有的票证/会话映射,并使当前会话无效。
为了调试 CAS,启用TRACE
级别记录。这样您就可以知道是否收到了正确的请求或会话是否已失效。
我还建议你看看代码org.jasig.cas.client.session
包,非常简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)