有人在CAS代理授予票证上有一个有效的例子吗?

时间:2009-09-07 13:57:12

标签: authentication single-sign-on cas

我需要实现CAS代理授予票证系统。

所以我需要了解系统。有一个很好的文档here,但我不知道我需要的proxyCallback。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分: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);

然后,您将重定向到该服务,并为其提供新票证。