CAS 6.0和Spring Security:JWT配置在Service Ticket验证时失败

问题描述 投票:0回答:1

我正在使用CAS 6.0和带有Spring Security的Spring Boot进行配置,以便转移到JWT。查看this指南,我已经配置了模块依赖项,CAS Service Registry,以及签名和加密密钥。流程进行得很顺利:

上次调用具有两个查询字符串参数redirect = true和ticket = [JWT string]。我已经设置了一个对令牌进行解码的过滤器,该过滤器可以工作,但是随后过滤器链命中了CasAuthenticationFilter,CasAuthenticationFilter会看到ticket参数,并尝试将其验证为Service Ticket,失败。

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

spring-boot authentication spring-security jwt cas
1个回答
0
投票

CAS 5.3.x中的相同问题。

最后我完成了以下流程:

CAS服务器

  1. 在cas服务器中设置cas.properties,添加'cas.ticket.st.numberOfUser = 2'以使服务票证可以使用两次。 (默认值为1)

应用程序服务器

  1. 设置过滤器以解码JWT令牌,从JWT令牌中的键“ jti”中提取服务票证。
  2. 将响应状态设置为302,然后重定向到请求url,并将服务票证作为名为“ ticket”的查询字符串。 (请注意,此步骤中不应继续使用下一个过滤器)
  3. 来自#2的重定向请求不应在#1的过滤器中处理,然后进入过滤器链。

以上流程有效。但是需要进行更多测试,以确认Web应用程序和结果api服务的正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.