Java 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

我刚刚制作了一个HelloWorldservlet并在其上实现了CAS。 我可以毫无问题地登录,CAS在我的浏览器中设置了3个cookie,CASGT,2个JSESSIONID 1用于/CAS,另一个用于/helloWorld

问题是,当我访问时,我看到成功注销屏幕,但cookies仍在我的浏览器中,因此我没有注销,我可以在/helloWorld中再次登录,而不显示登录屏幕

你知道我应该怎么做才能让CAS删除我注销时创建的cookies吗


提前感谢

CASGT cookie由CAS设置,应该由CAS取消设置。CAS注销过程的工作原理如下:

  • 您实际上进入CAS注销页面。页面应该知道您从中注销的应用程序。一种方法是从应用程序重定向到CAS注销页面,提供重定向回URL作为参数

  • 您的cookie将被擦除,然后通过POST请求重定向到您的应用程序

  • SingleSignOutFilter
    捕获一个特殊参数“logoutRequest”,并实际销毁它从一开始就持有的票证/会话映射,同时使当前会话无效

  • 要调试CAS,请启用
    跟踪
    级别日志记录。通过这种方式,您将知道是否收到了正确的请求,或者会话是否已无效


    我还建议您查看
    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