2014-06-06 48 views
7

我有六个应用程序,我正在使用Jasig CAS进行身份验证。 Jasig CAS的Single Sign On对我来说真的很好。Jasig CAS身份验证重定向循环

另一方面,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

---- ---- UPDATE

我管理通过从改变的应用程序配置的“满足”参数来解决4/6个应用“任何”改为“全部”。

在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。

错误

有什么建议吗?

+0

我的第一个猜测是:http://domain.com/app2/someservice被缓存。 –

+0

什么是Apache CAS?你的意思是[Jasig CAS](http://jasig.org/cas)? –

+0

是的,我的意思是,感谢您的纠正。 – Skr

回答

0

您是否使用“django-cas-client”作为身份验证后端?

我不确定您是否需要在JaSig CAS端配置任何单一签名。这是一种注销方式,您可以自由使用它。

你可能想学习这些文章(S):

+0

我正在使用proxypass将CAS用作所有应用程序的网关。它适用于那些我使用mod_jk来制作Tomcat和Apache的人。 – Skr