2009-09-07 4 views
6

Мне нужно внедрить систему выдачи прокси-сервера CAS.Есть ли у кого-нибудь действительный пример в CAS Proxy Granting Ticket?

Поэтому мне нужно понять систему. Есть хороший документ here, но я понятия не имею о прокси-сервере, который мне нужен.

Может ли кто-нибудь объяснить мне это?

+0

Я успешно реализовал CAS SSO, поэтому, возможно, я могу вам помочь, но вы должны объяснить свои сомнения немного более ясно. – rodrigoap

+0

Я прочитал статью по адресу http://www.ja-sig.org/wiki/display/CAS/Proxy+CAS+Walkthrough, но я не знаю, какой Url мне нужен для параметра pgtUrl и «Шаг второй (b) : проверьте билет и включите дополнительное проксирование ». Я не понимаю роли pgtUrl. –

ответ

3

CAS вызовет pgtURL, чтобы предоставить специальный билет, который позволит этому приложению приобрести новые билеты для других приложений.
Это установка в 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> 

Чтобы получить новый билет на другой сервис со специальным билетом:

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

Затем вы переадресованы к этой службе, давая ему в новый билет.

+0

Хорошо. Я не заметил, что мне пришлось изменить web.xml. Я не гуру Java. Вы имеете в виду, что я написал код java для включения прокси-гранта? –

+1

Вам нужно всего лишь закодировать часть, использующую PGT, для получения новых билетов для других приложений. Часть, которая отвечает за получение PGT и сохраняет ее для вас, чтобы использовать ее, уже закодирована в сервлете ProxyTicketReceptor. – rodrigoap