2009-09-07 3 views
6

CAS Proxy Granting Ticket System을 구현해야합니다.CAS Proxy Granting Ticket에 대한 유효한 예가 있습니까?

그래서 시스템을 이해해야합니다. 좋은 문서 here이 있지만, 필자가 필요로하는 proxyCallback에 대해서는 전혀 모른다.

누군가 저에게 설명 할 수 있습니까?

+0

CAS SSO를 성공적으로 구현 했으므로 도움이 될 수 있지만 의심을 좀 더 분명하게 설명해야합니다. – rodrigoap

+0

나는 http://www.ja-sig.org/wiki/display/CAS/Proxy+CAS+Walkthrough에 기사를 따랐다. 그러나 어느 URL이 pgtUrl 매개 변수 et "단계 2 (b)에 필요한지 모르겠다. : 티켓을 확인하고 추가 프록시 사용 가능 ". pgtUrl의 역할을 이해하지 못합니다. –

답변

3

CAS는 pgtURL을 호출하여 해당 응용 프로그램이 다른 응용 프로그램의 새 티켓을 얻을 수있는 특별 티켓을 제공합니다. 그런 다음

SecurityContext sc = SecurityContextHolder.getContext(); 
CasAuthenticationToken auth = (CasAuthenticationToken)sc.getAuthentication(); 
String pgtIOU = auth.getProxyGrantingTicketIou(); 
String newTicket = ProxyTicketReceptor.getProxyTicket(pgtIOU, anotherService); 

당신이 그것을에 제공하는 서비스로 리디렉션 :

<servlet> 
    <servlet-name>casproxy</servlet-name> 
    <servlet-class>edu.yale.its.tp.cas.proxy.ProxyTicketReceptor</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>casproxy</servlet-name> 
    <url-pattern>/casProxy/*</url-pattern> 
</servlet-mapping> 

특수 티켓과 다른 서비스에 대한 새로운 티켓을 얻으려면 :
web.xml을의 설정입니다 새 티켓.

+0

좋습니다. web.xml을 변경해야한다는 것을 눈치 채지 못했습니다. 저는 자바 전문가가 아닙니다. 당신은 프록시 부여 티켓을 활성화하는 자바 코드를 작성한 것을 의미합니까? –

+1

다른 응용 프로그램에 대한 새 티켓을 얻으려면 PGT를 사용하는 부분 만 코딩하면됩니다. PGT를 수신하고이를 사용하기 위해 PGT를 저장하는 부분은 이미 ProxyTicketReceptor 서블릿에 코딩되어 있습니다. – rodrigoap