Java CAS注销和cookies消除
我刚刚制作了一个HelloWorldservlet并在其上实现了CAS。 我可以毫无问题地登录,CAS在我的浏览器中设置了3个cookie,CASGT,2个JSESSIONID 1用于/CAS,另一个用于/helloWorld 问题是,当我访问时,我看到成功注销屏幕,但cookies仍在我的浏览器中,因此我没有注销,我可以在/helloWorld中再次登录,而不显示登录屏幕 你知道我应该怎么做才能让CAS删除我注销时创建的cookies吗Java CAS注销和cookies消除,java,single-sign-on,cas,jasig,Java,Single Sign On,Cas,Jasig,我刚刚制作了一个HelloWorldservlet并在其上实现了CAS。 我可以毫无问题地登录,CAS在我的浏览器中设置了3个cookie,CASGT,2个JSESSIONID 1用于/CAS,另一个用于/helloWorld 问题是,当我访问时,我看到成功注销屏幕,但cookies仍在我的浏览器中,因此我没有注销,我可以在/helloWorld中再次登录,而不显示登录屏幕 你知道我应该怎么做才能让CAS删除我注销时创建的cookies吗 提前感谢CASGT cookie由CAS设置,应该由CA
提前感谢CASGT cookie由CAS设置,应该由CAS取消设置。CAS注销过程的工作原理如下:
SingleSignOutFilter
捕获一个特殊参数“logoutRequest”,并实际销毁它从一开始就持有的票证/会话映射,同时使当前会话无效跟踪
级别日志记录。通过这种方式,您将知道是否收到了正确的请求,或者会话是否已无效
我还建议您查看
org.jasig.cas.client.session
包的代码,它非常简单。您应该查看cas single sign out上的文档,可以找到这些文档。它说:
单点注销的工作方式:
在服务器上维护会话管理的客户端/语言
服务器端。然后,CAS客户端可以访问会话信息以结束会话
会议结束了
单一注销不起作用的地方:
其唯一会话管理由cookie组成的客户端/语言。
CAS无权访问浏览器的Cookie,因此无法访问
终止会话。(但是,关闭浏览器窗口就可以了
(即)
我想这就是你的情况。基于Cookie的SSout是不可能实现的,但是如果您可以使用Spring这样的框架(就像我们在项目中所做的那样),SSout很容易配置,而且非常方便非常感谢您在Ligo中的建议,他们没有解决我的问题,但帮助我发现了问题所在。我遇到的问题之一是SSL配置,注销屏幕是在http上调用的,因此浏览器没有发送CASGT cookie,因此CAS服务器除了显示一个显示注销成功的屏幕外什么都不做。您必须在CAS服务器端实现一些自定义代码,以便在成功注销后删除自定义cookie