2013-02-14 1 views
0

카세트 화 된 스프링 응용 프로그램 (필터가 있고 실행 중입니다)이 있습니다.로그인 후 CAS 티켓을 가져옵니다.

이 응용 프로그램은 REST를 통해 여러 외부 서비스 (Bonita, W4 등)에 쿼리해야합니다. 이 다른 서비스들 역시 카세트 화됩니다.

확인.

이제 스프링 애플리케이션에서 CAS TICKET을 복구해야 이러한 다른 서비스에 대한 프록시 티켓을 생성 할 수 있지만 어떻게 티켓을 얻을 수 있는지 알 수 없습니다. 나는이 URL을 사용하여 이러한 서비스에 대한 티켓을 요청하려고 :

https://[cas-service]/login?service=[service]&gateway=true 

이 명령은 (재 지정을 통해) 티켓 만이 재 Spring 애플리케이션 차단을위한 CAS 필터를 반환하고 내가 매개 변수가 반환받을 수 없습니다.

http://[service-url]?ticket=ST-.... 

내가 다른 서비스로 현재 사용자의 유효성을 검사 할 수있는 티켓을 검색 할 수있는 방법

http://[service-url] 

로 리디렉션?

감사합니다.

PD : 내 영어에 대한 죄송합니다 ... 당신이 인증 된 CAS 토큰 개체를 가져올 수있는 보안 컨텍스트에서 :

+0

이 작업을 수행하는 방법에 대해 설명하는 참조를 실행 했습니까? static.springsource.org/spring-security/site/docs/3.1.x/reference/cas.html#cas-pt-client 참고 https : // 샘플에 포함 된 프록시 티켓 사용을 보여주는 샘플 응용 프로그램이 있습니다. github.com/SpringSource/spring-security/tree/master/samples/cas/. –

답변

1
SecurityContext ctx=SecurityContextHolder.getContext(); 
CasAuthenticationToken casToken=(CasAuthenticationToken) ctx.getAuthentication(); 
Assertion assertion=casToken.getAssertion(); 
user_fullName=(String) assertion.getAttributes().get("FullName"); 

. SAML 응답이 있습니다. CAS 토큰 객체에는 SAML 응답에 대한 세부 정보가 있습니다. 당신은 ASSERTION을 얻기 위해 CAS 토큰 객체를 질의 할 수 있고 그것을 당신의 App에서 사용할 수 있습니다.

+0

.net CAS로 작업 중이며 위에 표시된 것과 동일한 작업을 수행해야하지만이 클래스의 위치를 ​​알 수는 없습니다. 어떤 dll을 사용하고 있으며, 네임 스페이스는 무엇입니까? 이것이 올바른지 확실하지 않지만 System.Security.SecurityContext에서 SecurityContext를 찾았습니다. 다른 사람들에 대해서는 잘 모르겠습니다. 어떤 도움을 주셔서 감사합니다! – RichieMN