2009-09-07 14 views
6

Potrzebuję wprowadzić system biletowy CAS Proxy.Czy ktoś ma ważny przykład na bilecie przyznającym bilet Proxy?

Muszę więc zrozumieć system. Jest dobry dokument here, ale nie mam pojęcia o żądaniu proxy, którego potrzebuję.

Czy ktoś mógłby mi to wyjaśnić?

+0

Z powodzeniem wdrożyłem CAS SSO, więc może będę mógł ci pomóc, ale musisz wyjaśnić swoje wątpliwości nieco bardziej zrozumiałe. – rodrigoap

+0

Śledziłem artykuł na http://www.ja-sig.org/wiki/display/CAS/Proxy+CAS+Walkthrough, ale nie wiem, który adres URL jest mi potrzebny dla parametru pgtUrl i "Krok drugi (b) : sprawdź bilet i włącz dodatkowe proxy ". Nie rozumiem roli pgtUrl. –

Odpowiedz

3

CAS wywoła pgtURL w celu zapewnienia specjalnego biletu, który umożliwi tej aplikacji uzyskanie nowych biletów na inne aplikacje.
Jest to ustawienie w web.xml:

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

aby uzyskać nowy bilet na inną usługę ze specjalnym biletu:

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

Wtedy przekierowanie do tej służby, dając mu do nowy bilet.

+0

OK. Nie zauważyłem, że muszę zmienić web.xml. Nie jestem guru Java. Czy masz na myśli, że napisałem kod Java, aby włączyć proxy Udzielenie biletu? –

+1

Musisz tylko zakodować część, która korzysta z PGT, aby uzyskać nowe bilety na inne aplikacje. Część, która jest odpowiedzialna za odbiór PGT i przechowywanie go do użycia, jest już zakodowana w serwletie ProxyTicketReceptor. – rodrigoap