Я использую CAS 4.2.3. У меня есть 2 кассифицированных весенних приложения безопасности. Когда я делаю один выход из 1 приложения, оно не выходит из другого приложения. Согласно документации, BACK_CHANNEL должен отправить сообщение всем зарегистрированным приложениям.
Однако в моем случае я не вижу никаких сообщений от CAS в другом моем приложении.
Я также не вижу сообщений об ошибках в журналах CAS.
Может ли кто-нибудь дать указания, как лучше отладить эту проблему, чтобы решить эту проблему.
Я включил следующее в cas.properties
##
# Single Logout Out Callbacks
#
# To turn off all back channel SLO requests set this to true
slo.callbacks.disabled=false
#
# To send callbacks to endpoints synchronously, set this to false
slo.callbacks.asynchronous=true
Добавив следующее в мой клиент cas spring.xml,
<sec:http use-expressions="true" entry-point-ref="casEntryPoint">
<sec:intercept-url pattern="/login/*" access="permitAll()" />
<sec:intercept-url pattern="/lib/**" access="permitAll()" />
<sec:intercept-url pattern="/**" access="hasRole('ROLE_ADMINISTRATOR')" />
<sec:custom-filter ref="requestSingleLogoutFilter" before="LOGOUT_FILTER" />
<sec:custom-filter ref="singleLogoutFilter" before="CAS_FILTER" />
<sec:custom-filter position="CAS_FILTER" ref="casFilter" />
<sec:logout logout-success-url="/logout.jsp?service=https://<hostname>/WebApp4/j_spring_cas_security_check" />
</sec:http>
<!-- This filter handles a Single Logout Request from the CAS Server -->
<bean id="singleLogoutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter">
<property name="artifactParameterName" value="SAMLart"></property>
</bean>
<!-- This filter redirects to the CAS Server to signal Single Logout should be performed -->
<bean id="requestSingleLogoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
<constructor-arg value="https://<hostname>/cas/logout" />
<constructor-arg>
<bean class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler" />
</constructor-arg>
<property name="filterProcessesUrl" value="/logout/cas" />
</bean>
И добавил следующее в web.xml,
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>