Tomcat 从OAuth身份验证代码授权流中的CAS(PingFederate)重定向,在OAuth客户端上创建新会话

Tomcat 从OAuth身份验证代码授权流中的CAS(PingFederate)重定向,在OAuth客户端上创建新会话,tomcat,spring-security,oauth-2.0,spring-security-oauth2,pingfederate,Tomcat,Spring Security,Oauth 2.0,Spring Security Oauth2,Pingfederate,我有一个web应用程序,它就像OAuth客户机一样,从PingFederate(这里充当CAS+IDP)获取访问令牌。web应用会话由附加在与web应用关联的URL中的JSESSION ID管理。 登录后,我们发现web应用程序启动身份验证代码授权流(Spring安全过滤器),以便为经过身份验证的用户获取访问令牌。从PingFederate重定向时,重定向url中没有附加JSSessionID(因为PingFed不知道这里的JSSessionID)。这会导致web应用程序上的重定向uri启动新会

我有一个web应用程序,它就像OAuth客户机一样,从PingFederate(这里充当CAS+IDP)获取访问令牌。web应用会话由附加在与web应用关联的URL中的JSESSION ID管理。 登录后,我们发现web应用程序启动身份验证代码授权流(Spring安全过滤器),以便为经过身份验证的用户获取访问令牌。从PingFederate重定向时,重定向url中没有附加JSSessionID(因为PingFed不知道这里的JSSessionID)。这会导致web应用程序上的重定向uri启动新会话

我不希望web应用重定向uri生成新的Tomcat会话。从建筑上看,这里似乎有些异味。我想检查哪些可能的解决方案可以避免生成新会话

如果需要,我可以共享代码。请问


谢谢

当客户端应用程序向PingFederate发送OAuth授权请求时,您可以包含一个
redirect\u uri
查询字符串参数,告诉它如何重定向回应用程序。如果您能够在该值中包含JSESSIONID,PingFederate将在重定向中包含它

鉴于JSSessionID的值是动态的,您可能需要在PingFederate管理控制台中客户端上配置的重定向URI中包含通配符(
*

有关详细信息,请参阅:

  • redirect\u uri
    参数)
  • 重定向URI可在PingFederate管理中的客户端上配置)

假设您正在实现三条腿的OAuth流,请确保您的体系结构清楚地定义了这里的三方—a)资源所有者、b)消费者和c)服务提供者。
演示了三腿OAuth流。对于。身份验证代码授权是。

注意,我这样做的方式是在使用关联的重定向状态键进行重定向之前捕获JSSessionID&我在基于PingFederate返回的状态键进行重定向之后重新插入JSSessionID。我们认为这是处理这种情况的有效方法吗?我有点不确定PingFederate中重定向uri中的通配符将如何工作,因为在多用户场景中可以同时发生多个JSESSIONID重定向