0
CAS 4.2.3을 사용 중입니다. 2 개의 카세트 된 스프링 보안 어플리케이션이 있습니다. 1 개의 응용 프로그램에서 단일 로그 아웃을 할 때 다른 응용 프로그램을 로그 아웃하지 않습니다. 설명서에 따르면 BACK_CHANNEL은 등록 된 모든 응용 프로그램에 메시지를 POST해야합니다.CAS - BACK_CHANNEL 메시지가 작동하지 않습니다.
그러나 내 경우에는 다른 응용 프로그램에서 CAS의 메시지가 표시되지 않습니다.
CAS 로그에도 오류 메시지가 표시되지 않습니다.
누군가이 문제를 해결하기 위해이 문제를 디버그하는 방법을 알려줄 수 있습니까?
은 내가 의 web.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>
, cas.properties 내 CAS 클라이언트에서 다음 spring.xml 추가
##
# 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
에 다음과 활성화 그리고 추가,
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
SLO를 사용하는 방법을 자세히 설명해 주시겠습니까? 그것은 cas.properties에서 켜져 야 할 필요가있는 것입니까? SingleSingoutFilter와 리스너가 cas 클라이언트에 추가되었습니다. POST 요청을 캡처하여 처리 할 준비가 되려면 cas 클라이언트 측에서 다른 작업을 수행해야합니까? 우선 cas 클라이언트 (다른 cas 등록 된 서비스의 경우)에 게시되는 내용이 보이지 않습니다./cas/logout을 수행 할 때 끝납니다. – SaAn
SLO를 사용하는 코드로 설명을 업데이트했습니다. – SaAn
Spring Security가 어떻게 작동하는지 모르겠습니다. 문제를 해결하려면 CAS 로그를 DEBUG로 업데이트하고 어떤 일이 발생하는지 확인해야합니다. 메시지가 표시되면 나머지는 SS입니다. –