我有六个应用程序,并且正在使用Jasig CAS对其进行身份验证。 Jasig CAS的Single Sign On对我来说真的很有效。
另一方面,Single Sign Off对我不起作用。从一个应用程序注销时,我无法从其根域访问其他应用程序,但可以使用其子服务来访问它们。
示例:
APP1 = http://domain.com/app1
APP2 = http://domain.com/app2
如果我从APP1注销,则无法访问http://domain.com/app2但可以访问http://domain.com/app2/someservice
信息:
我正在使用ProxyPass将应用程序定向到Jasig CAS。
在Apache CAS web.xml中,我添加了:
<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>
我的应用程序基于Jsp和Django。
CAS版本:3.3.10
----更新----
通过将应用程序配置的“满意”参数从“any”更改为“all”,我设法解决了6个应用程序中的4个。
在Tomcat中部署了6个应用程序中的2个,并且为了使其在apache上运行,使用了mod_jk。当我尝试输入其中任何一个应用程序时,都会收到重定向循环错误。因为
1-)从CAS生成票证的申请请求票证
2-CAS提供票证生成票证
3-)应用程序重新发送票证生成票证以获得票证
4-)CAS重定向到应用程序的主页
5-)返回状态1
当我查看cas.log文件时,我看到了
未设置FormObjectClass。将org.jasig.cas.authentication.principal.UsernamePasswordCredentials的默认类与formObjectName凭据和验证器org.jasig.cas.validation.UsernamePasswordCredentialsValidator一起使用。
错误
有什么建议 ?
最佳答案
您是否将“django-cas-client”用作身份验证后端?
我不确定您是否需要在JaSig CAS端配置任何内容以进行单点签核。这是注销的一种方式,您可以自由使用它或不使用它。
您可能需要研究以下文章: