Spring boot CAS 6.0和Spring安全性:JWT配置在服务票证验证时失败

Spring boot CAS 6.0和Spring安全性:JWT配置在服务票证验证时失败,spring-boot,authentication,spring-security,jwt,cas,Spring Boot,Authentication,Spring Security,Jwt,Cas,我正在使用CAS 6.0和带Spring Security的Spring Boot设置一个配置,以便切换到JWT。看一下指南,我已经配置了模块依赖项、CAS服务注册表以及签名和加密密钥。流程正常: 在调用应用程序时,我被重定向到CAS登录, 至少,我可以正确指定凭据,并在cookies中看到JWT格式的TGC, 插入凭据后,我将被重定向到。 最后一个调用有两个查询字符串参数redirect=true和ticket=[jwtstring]。 我已经设置了一个过滤器对令牌进行解码,它可以工作,但是过

我正在使用CAS 6.0和带Spring Security的Spring Boot设置一个配置,以便切换到JWT。看一下指南,我已经配置了模块依赖项、CAS服务注册表以及签名和加密密钥。流程正常:

在调用应用程序时,我被重定向到CAS登录, 至少,我可以正确指定凭据,并在cookies中看到JWT格式的TGC, 插入凭据后,我将被重定向到。 最后一个调用有两个查询字符串参数redirect=true和ticket=[jwtstring]。 我已经设置了一个过滤器对令牌进行解码,它可以工作,但是过滤器链点击CasAuthenticationFilter,它会看到ticket参数并尝试将其验证为服务ticket,但失败了


如何让它知道jwt,并将请求转发到原始URL?

CAS 5.3.x中的相同问题

最后,我完成了以下流程:

CAS服务器:

在cas服务器中设置cas.properties,添加“cas.ticket.st.numberOfUses=2”以使服务票证可以使用两次。默认值为1 应用服务器:

设置一个过滤器来解码JWT令牌,从JWT令牌中的密钥jti提取服务票证。 将响应状态设置为302并重定向到请求url,并将服务票证设置为名为ticket的查询字符串。请注意,在此步骤中,不应继续下一个过滤器 来自2的重定向请求不应在1的筛选器中处理,然后进入筛选器链。
上述流程有效。但是需要更多的测试来确认web应用程序和结果api服务的正常工作。

CAS 5.3.x中也有同样的问题

最后,我完成了以下流程:

CAS服务器:

在cas服务器中设置cas.properties,添加“cas.ticket.st.numberOfUses=2”以使服务票证可以使用两次。默认值为1 应用服务器:

设置一个过滤器来解码JWT令牌,从JWT令牌中的密钥jti提取服务票证。 将响应状态设置为302并重定向到请求url,并将服务票证设置为名为ticket的查询字符串。请注意,在此步骤中,不应继续下一个过滤器 来自2的重定向请求不应在1的筛选器中处理,然后进入筛选器链。
上述流程有效。但是需要更多的测试来确认web应用程序和结果api服务的正常工作。

这听起来像是一个可行的解决方案。不幸的是,我改变了我的配置,使其工作,无法测试它,除非回滚所有内容。无论如何,对我来说,实现这种黑客行为以避免CAS文档化配置所给出的错误仍然是很奇怪的。谢谢。对不起,我键入了错误的密钥名,请将cas.ticket.st.numberofuse=2更正为cas.ticket.st.numberofuse=2。我已经更正了我的答案。ThanksIt听起来像一个有效的解决方案。不幸的是,我改变了我的配置,使其工作,无法测试它,除非回滚所有内容。无论如何,对我来说,实现这种黑客行为以避免CAS文档化配置所给出的错误仍然是很奇怪的。谢谢。对不起,我键入了错误的密钥名,请将cas.ticket.st.numberofuse=2更正为cas.ticket.st.numberofuse=2。我已经更正了我的答案。谢谢