2014-11-20 2 views
2

저는 Jasig CAS 3.5.2.1 버전과 두 개의 개별 응용 프로그램 (app-A 및 app-B라고 가정 해 봅시다)이 CAS 서버 (pac4j-play-cas-client 사용)를 통해 사용자를 인증한다고 가정합니다.CAS 단일 로그 아웃 문제

사용자가 app-A에 로그인 한 다음 다른 서비스 티켓을 사용하여 app-B에 로그인한다고 가정합니다. 사용자가 app-A에서 로그 아웃하면 CAS 서버가 app-A 및 app-B 로그 아웃 콜백 서비스 모두에 로그 아웃 콜백을 보낼 것으로 기대합니다. 하지만 CAS 서버는 app-A로 로그 아웃 콜백 만 보냅니다. I 앱-B에 대한 로그 아웃 콜백을받을 수없는 이유를

> <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> 

가 나는 점을 놓치고 다음과 같이 내 CAS 서버에

단일 Singout 구성은?

답변

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으로 전송됩니다. 로그와 관련이 없습니까?

+0

제롬 감사합니다. 공유 한 클래스를 살펴본 후 SLO 메커니즘이 예상대로 작동 할 수 있도록 모든 클라이언트 응용 프로그램에 동일한 TGT를 사용해야한다는 것을 깨달았습니다. –