CAS单点注销问题

时间:2014-11-20 15:48:51

标签: java cas jasig

我有一个Jasig CAS 3.5.2.1版本和两个独立的应用程序(让他们说app-A和app-B)通过CAS服务器验证他们的用户(使用pac4j-play-cas-client)。

假设用户登录app-A,然后使用不同的服务票证登录app-B。当用户从app-A注销时,我希望CAS服务器向app-A和app-B注销回调服务发送注销回调。但似乎CAS服务器只向app-A发送注销回调。

我的CAS服务器上的单个Singout配置如下:

> <beans xmlns="http://www.springframework.org/schema/beans"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xmlns:p="http://www.springframework.org/schema/p"
>        xmlns:util="http://www.springframework.org/schema/util"
>        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
>        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">
>         <description>
>                 Argument Extractors are what are used to translate HTTP requests into requests of the appropriate protocol (i.e. CAS,
> SAML, SAML2,
>                 OpenId, etc.).  By default CAS and SAML are enabled.
>         </description>
>         <bean
>                 id="casArgumentExtractor"
>                 class="org.jasig.cas.web.support.CasArgumentExtractor"
>          p:httpClient-ref="noRedirectHttpClient"
>          p:disableSingleSignOut="${slo.callbacks.disabled:false}" />
> 
>         <bean id="samlArgumentExtractor" class="org.jasig.cas.web.support.SamlArgumentExtractor"
>              p:httpClient-ref="noRedirectHttpClient"
>              p:disableSingleSignOut="${slo.callbacks.disabled:false}" />
> 
>         <util:list id="argumentExtractors">
>                 <ref bean="casArgumentExtractor" />
>                 <ref bean="samlArgumentExtractor" />
>         </util:list> </beans>

我错过了一个观点,为什么我没有得到app-B的退出回调?

1 个答案:

答案 0 :(得分:3)

免责声明:我是CAS的主席和CAS的创始人(https://www.casinthecloud.com)。我也是pac4j库的创建者。

CAS注销由此控制器处理:https://github.com/Jasig/cas/blob/3.5.2.1/cas-server-core/src/main/java/org/jasig/cas/web/LogoutController.java并且注销请求实际上是由此代码发送的:https://github.com/Jasig/cas/blob/3.5.2.1/cas-server-core/src/main/java/org/jasig/cas/ticket/TicketGrantingTicketImpl.java#L142。您的日志中没有任何相关内容?