Jasig-CAS单点登出Java客户端问题

时间:2012-11-30 11:57:24

标签: java-ee jboss single-sign-on cas

我有一个CAS 3.5服务器和两个Java客户端(我们称之为app1和app2),我无法单点注销工作。 app1和app2部署在JBoss AS7的不同实例中。

测试用例场景是:

1 - 在浏览器标签中,成功登录app1。

2 - 在另一个标签中,在访问app2时,用户已经登录。(单点登录正常工作)。

3 - 成功注销app1。

4 - 但是,即使页面刷新后,用户仍继续登录app2。 JSESSIONID cookie仍然存在。

当退出app1(步骤3)时,会在app2的控制台上打印(日志级别:调试):

08:15:42,806 DEBUG [org.jasig.cas.client.authentication.Saml11AuthenticationFilter] (http--0.0.0.0-8080-3) no ticket and no assertion found
08:15:42,807 DEBUG [org.jasig.cas.client.authentication.Saml11AuthenticationFilter] (http--0.0.0.0-8080-3) Constructed service url: http://myip:8080/app2
08:15:42,807 DEBUG [org.jasig.cas.client.authentication.Saml11AuthenticationFilter] (http--0.0.0.0-8080-3) redirecting to "https://mycasip:8443/cas/login?TARGET=http%3A%2F%2Fmyip%3A8080%2Fapp2"

仅仅为了记录,cas服务器和app2的URL似乎构造得很好,但是,没有实际的重定向。 我在cas服务器的控制台上看不到任何内容(再次登录级别:debug)

以下是我的web.xml摘录(我使用SAML发送除用户名之外的ldap属性):

<filter>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    <init-param>
        <param-name>artifactParameterName</param-name>
        <param-value>SAMLart</param-value>
    </init-param>
</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>

SingleSignOutFilter之前没有过滤器定义,只有app display-name和welcome-file-list。

我已经阅读了类似this one之类的问题(注意:我没有使用spring或jsp,用户在新标签中打开app2后仍然登录)但是解决方案对我不起作用或者没有完全没有。

0 个答案:

没有答案