CAS Single Logout Issue
У меня есть версия Jasig CAS 3.5.2.1 и два отдельных приложения (скажем, app-A и app-B), которые аутентифицируют своих пользователей через сервер CAS (используя pac4j-play-cas-client).
Предположим, что пользователь входит в приложение A, а затем выполняет вход в приложение B, используя разные заявки на обслуживание. Когда пользователь выходит из приложения A, я ожидаю, что сервер CAS отправит обратный вызов для выхода из системы как службам обратного вызова для приложения A, так и приложения B. Но кажется, что сервер CAS только отправляет обратный вызов выхода из системы в app-A.
Конфигурация Single Singout на моем сервере CAS выглядит следующим образом:
> <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>
Мне не хватает точки, почему я не могу получить обратный вызов для выхода из приложения B?
1 ответ
Отказ от ответственности: я председатель 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. Ничего актуального в ваших логах?