登录后检索CAS票证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登录后检索CAS票证相关的知识,希望对你有一定的参考价值。

我有一个cassified Spring应用程序(带有过滤器并运行正常)。

此应用程序必须通过REST查询多个外部服务(Bonita,W4等)。这些其他服务也是可以理解的。

好。

现在,我需要从spring应用程序恢复CAS TICKET以生成这些其他服务的代理票证,但我不知道如何获取票证。我尝试使用以下URL请求这些服务的票证:

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

此命令返回一个票证(通过重定向),但Spring应用程序的CAS过滤器拦截此重定向,我无法获取返回的参数。

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

重定向到

http://[service-url]

我如何检索票证以验证当前用户到另一个服务?

谢谢!!

PD:抱歉我的英语有限...... :)

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

从安全上下文中,您可以获取经过身份验证的CAS令牌对象。哪个有SAML响应。 CAS令牌对象具有SAML响应的详细信息。您可以查询CAS令牌对象以获取ASSERTION,您可以在App中使用它。

以上是关于登录后检索CAS票证的主要内容,如果未能解决你的问题,请参考以下文章

CAS登录后回传除了ticket参数以外的其他自定义参数

CAS 6.0 和 Spring Security:服务票证验证时 JWT 配置失败

CAS认证后在JSF Managed Bean中获取LDAP属性

markdown [Apereo CAS 3.5 CORE] Apereo CAS 3.5 #CAS的核心代码片段

CAS 4 - 成功验证后无法检索 LDAP 组

cas登录后报错