Single sign on 为跨域应用程序实施CAS单点注销
我是使用CAS的初学者。我的CAS服务器已在端口8443(安全HTTP层)启动并运行。我还制作了两个应用程序——JAVA客户端(我自己的JAVA客户端)和PHP客户端(由CAS正式提供),用于测试我的CAS服务器。我可以为两个客户端使用单点登录。我还在CAS属性文件中启用了单点注销。我当前的CAS版本是4.0.0,我正在使用ApacheTomcat版本8.0.23 我已经为JAVA客户端的web.xml注销添加了以下依赖项Single sign on 为跨域应用程序实施CAS单点注销,single-sign-on,logout,cas,jasig,Single Sign On,Logout,Cas,Jasig,我是使用CAS的初学者。我的CAS服务器已在端口8443(安全HTTP层)启动并运行。我还制作了两个应用程序——JAVA客户端(我自己的JAVA客户端)和PHP客户端(由CAS正式提供),用于测试我的CAS服务器。我可以为两个客户端使用单点登录。我还在CAS属性文件中启用了单点注销。我当前的CAS版本是4.0.0,我正在使用ApacheTomcat版本8.0.23 我已经为JAVA客户端的web.xml注销添加了以下依赖项 <filter> <filter-name&
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class> org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class> org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
CAS单签出筛选器
org.jasig.cas.client.session.SingleSignOutFilter
CAS单签出筛选器
/*
org.jasig.cas.client.session.SingleSignOutHttpSessionListener
但在执行单点注销时,当我注销PHP应用程序时,我无法注销已经打开的JAVA应用程序。这意味着从PHP应用程序注销时不会破坏现有的JAVA应用程序会话
所以经过大量的研究,我发现我能够成功地实现注销功能。但我不想使用公共会话数据库
官方文件中提到:
CAS直接向服务发送HTTPPOST消息(反向通道通信):这是向服务执行通知的传统方式
当CAS配置为SLO时,它会尝试向每个在SSO会话期间向CAS请求身份验证的应用程序发送注销消息
但我无法理解如何获取SLO消息,因为在注销应用程序期间,我没有收到任何POST请求(使用firebug进行跟踪)。所以,任何人都可以帮助我执行单点注销
提前感谢。如以下网址所示:
当CAS会话结束时,它会通知每个服务SSO会话不再有效,并且依赖方需要使其自己的会话无效
这可以通过两种方式实现:
SLO比SSO复杂得多…在处理注销请求时,$\u POST['logoutRequest']是空的。因此,我无法为我的任一客户接收SLO消息。那么,我应该如何为JAVA和PHP客户端检索这个SLO消息呢