我遵循CAS最佳做法构建cas.war (v4.0.0)并将其部署到Tomcat7。当我旋转Tomcat时,我可以访问我的CAS登录页面:
https://localhost:8443/cas/login然后,我部署了我的一个“客户端”应用程序(一个使用Shiro进行身份验证的Grails web应用程序),该应用程序在线的网址是:
http://localhost:9100/myapp我转到一个经过身份验证的myapp网址
http://localhost:9100/myapp/secret我成功地重定向到我的CAS登录页面(目前,我使用的是默认的casLoginView.jsp)。我检查我的浏览器cookie,对于CAS站点,我有一个JSESSIONID。我使用CAS默认凭据登录(用户名为casuser;密码为Melon),并成功地重定向到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中配置web.xml会完成我的单点退出的实现,还是需要做更多的配置?/logout链接,那么无论何时我尝试访问一个经过身份验证的URL,它都应该将我重定向回/login页面吗?JSESSIONID和CASTGC有什么区别?服务器如何不同地处理/使用它们?cas-servlet.xml中配置任何东西才能实现单点登录?如果是,什么?如果没有,该文件用于什么?发布于 2019-11-28 20:15:26
我需要知道的是:
web.xml中配置web.xml会完成我的单点退出的实现,还是需要做更多的配置?是的,当然。但是,为了避免资源泄漏,您应该遵循指南,并将SingleSignOutHttpSessionListener添加到web.xml中。有关客户端的完整设置,请参见Java客户端正式文档。不要忘了将Github页面切换到您使用的CAS客户端版本。(请注意,它可能包含排字。)
/logout链接,那么无论何时我尝试访问一个经过身份验证的URL,它都应该将我重定向回/login页面吗?当然,这就是单注销机制的要点--它破坏了相应客户端应用程序中的所有会话--只要它们能够处理/logout上从CAS发出的注销回调。
如果您不知道如何为CAS或客户端应用程序配置SAML,那么您肯定会使用CAS协议。
JSESSIONID和CASTGC有什么区别?服务器如何不同地处理/使用它们?CASTGC cookie是CAS会话标识符的持有者(会话,从技术上讲,是由CAS在其类似地图的结构中管理的)。这是只有你和CAS服务器知道的秘密。Java被Java用于标识您的应用程序会话,正如JSESSIONID规范所定义的那样。具体而言,CAS主要用于跟踪您当前的歌唱过程。
cas-servlet.xml中配置任何东西才能实现单点登录?如果是,什么?如果没有,该文件用于什么?不,您没有。但是您可能会读到描述服务器端SLO功能的原理和可能的自定义的官方Apereo文件。
https://stackoverflow.com/questions/24068989
复制相似问题