Spring security 记住没有HTTP会话的目标URL
在后端代理CAS的上下文中,我的用户通常使用默认的重定向页面,而不是原始页面 在我的应用程序的工作流中,当我需要从我的webapp访问资源服务器时,它需要由Oauth2服务器(与spring-security-Oauth2和spring-security cas一起工作)提供有效的JWT令牌。若Oauth2服务器为该用户提供了CAS会话,它会给他JWT令牌,否则,它会将他重定向到CAS登录页面 在我的Oauth2服务器的spring security cas mecanism中,当用户填写登录cas页面时,它将原始请求(我来自的webapp URI)存储在HTTP会话中。如果登录成功,用户将被重定向到我的后端的端点,并且以前存储的请求将用于构建重定向到我的webapp() 在我的应用程序中,经常会发现它没有找到这个存储的请求。因为会话已过期。在本例中,它重定向到我的后端的默认页面 我可以增加服务器的http会话过期时间,但这并不能解决问题 对我来说,最好将原始URI转发给提交给CAS登录的查询请求(进入“服务”参数)。无国籍 我尝试了以下更改:Spring security 记住没有HTTP会话的目标URL,spring-security,spring-security-oauth2,cas,Spring Security,Spring Security Oauth2,Cas,在后端代理CAS的上下文中,我的用户通常使用默认的重定向页面,而不是原始页面 在我的应用程序的工作流中,当我需要从我的webapp访问资源服务器时,它需要由Oauth2服务器(与spring-security-Oauth2和spring-security cas一起工作)提供有效的JWT令牌。若Oauth2服务器为该用户提供了CAS会话,它会给他JWT令牌,否则,它会将他重定向到CAS登录页面 在我的Oauth2服务器的spring security cas mecanism中,当用户填写登录c
- 在我的http配置中:
sessionManagement().sessionCreationPolicy(sessionCreationPolicy.STATELESS)
- 在我的http配置中,一个自定义的AuthenticationSuccessHandler,它设置了
:targetUrlParameter
- serviceProperties bean中的一组
到AuthenticateAllarArtifacts
true
- 定制的AuthenticationDetailsSource和CasAuthenticationEntryPoint,使用类似Matt的“DynamicServiceSolver”完成:
SimpleUrlAuthenticationSuccessHandler handler = new SimpleUrlAuthenticationSuccessHandler();
handler.setTargetUrlParameter("redirect_uri");
casAuthenticationFilter.setAuthenticationSuccessHandler(handler);