Java CAS单信号滤波器
我遵循了构建cas.war(v4.0.0)并将其部署到Tomcat7的步骤。当我启动Tomcat时,我可以在以下位置访问我的CAS登录页面:Java CAS单信号滤波器,java,cookies,single-sign-on,cas,jsessionid,Java,Cookies,Single Sign On,Cas,Jsessionid,我遵循了构建cas.war(v4.0.0)并将其部署到Tomcat7的步骤。当我启动Tomcat时,我可以在以下位置访问我的CAS登录页面: https://localhost:8443/cas/login 然后,我部署了我的一个“客户端”应用程序(一个使用Shiro进行身份验证的Grails web应用程序),该应用程序在以下位置上线: http://localhost:9100/myapp 我转到myapp的经过身份验证的URL: http://localhost:9100/myapp/
https://localhost:8443/cas/login
然后,我部署了我的一个“客户端”应用程序(一个使用Shiro进行身份验证的Grails web应用程序),该应用程序在以下位置上线:
http://localhost:9100/myapp
我转到myapp
的经过身份验证的URL:
http://localhost:9100/myapp/secret
我已成功重定向到我的CAS登录页面(目前,我使用的是默认的casLoginView.jsp
)。我检查我的浏览器cookies,对于CAS站点,我有一个JSESSIONID
。我使用CAS默认凭据登录(用户名为Causser;密码为瓜),并成功重定向到http://localhost:9100/myapp/secret
。非常成功!我再次检查我的cookie,发现我有相同的JSESSIONID
以及一个新的CASTGC
cookie
我现在直接转到我的CAS注销页面:
https://localhost:8443/cas/logout
我看到“注销成功”消息,并再次检查我的cookie。CASTGC
cookie不见了,我还有一个JSESSIONID
,但是,它与我得到的第一个JSESSIONID
不同
现在,我返回到经过身份验证的URL:
http://localhost:9100/myapp/secret
我希望被重定向到CAS登录页面:相反,我被允许查看/secret
页面,并且即使在注销后,看起来仍然是经过身份验证的强>
我相信我需要实现SingleSignOutFilter
,方法是将它放在myapp
的web.xml
中
我需要知道的是:
- 在
中配置web.xml
是否将完成我的单次注销实现,或者我还需要进行更多配置SingleSignOutFilter
- 一旦实现了单点注销,它是否具有我上面描述的预期行为?也就是说,如果我转到
链接,那么每当我尝试转到经过身份验证的URL时,它都会将我重定向回/logout
页面/login
- 我如何知道我使用的是哪种协议(CAS 2.0或SAML 1.1)?我应该使用CAS 4.0.0附带的默认版本,因为我没有覆盖项目中的任何内容
和JSESSIONID
之间有什么区别?服务器如何处理/使用它们CASTGC
- 我是否需要在
中配置任何东西以使单点注销生效?如果是,什么?如果没有,该文件用于什么cas servlet.xml
- 在
中配置web.xml
是否将完成我的 单点注销的实现,还是我需要更多的配置 需要做什么SingleSignOutFilter
SingleSignOutHttpSessionListener
。有关客户端的完整设置,请参阅。不要忘记将Github页面切换到您使用的CAS客户端版本。(注意它可能包含打字错误。)
- 一旦实施单点注销,是否会达到预期效果
我上面描述的行为?意思是,如果我进入
链接,然后每当我尝试转到经过身份验证的URL时,它都应该 将我重定向回/logout
页面/login
/logout
上从CAS发出的注销回调
- 我如何知道我使用的是哪种协议(CAS 2.0或SAML 1.1)?我 应该使用CAS 4.0.0附带的默认版本,而我没有使用 覆盖我项目中的任何内容
和JSESSIONID
之间有什么区别?你好吗 服务器是否处理/使用了不同的数据CASTGC
CASTGC
cookie是CAS会话标识符的持有者(会话,从技术上讲是票证,由CAS在其自己的映射式结构中管理)。这是只有您和CAS服务器知道的秘密。Java应用程序使用JSESSIONID
cookie来标识规范中定义的应用程序会话。具体来说,CAS主要用于跟踪您当前的演唱过程
- 我是否需要在
中配置任何内容以获取单个 退出工作?如果是,什么?如果没有,该文件用于什么cas servlet.xml
不,你没有。但是你可以读e。G描述了服务器端SLO功能的原理和可能的自定义设置。您是否尝试过搜索其他答案?关于这个主题,有十几个问题。谢谢@EngineerDollery(+1)-但是我能找到的唯一与单次注销(而不是登录!)相关的问题是,这是由于用户使用IP地址而不是其CAS服务器的完全限定域名造成的。我还应该提到,无论我是否在本地运行CAS(
localhost
),或者如果我将其部署到我们的开发环境(DEV.mycas.example.com
),都会发生这种情况。请注意,CAS 3.5.2.1(最新/稳定版本)也出现了这种情况。或