我想记住来自我网站(SP)的第一个请求的url请求参数,并在IdP的响应后使用它们。
我正在使用spring-saml扩展并考虑relayState属性,但无法找到如何使用请求中的参数构建它的示例。
我需要在sso身份验证过程之后重定向用户到目标页面(应用程序模块)取决于第一次请求中的内容。
答案 0 :(得分:19)
Spring SAML示例应用程序的行为就像开箱即用。当用户点击受Spring Security保护并需要身份验证系统的页面时:
ExceptionTranslationFilter
和HttpSessionRequestCache
在Spring Security中自动完成)SAMLEntryPoint
类),可在IDP选择后将用户重定向到IDP org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler
您当然可以按照预期使用中继状态来实现此功能。设置中继状态的正确方法是扩展SAMLEntryPoint
,重写方法getProfileOptions
并在返回的WebSSOProfileOptions
对象中返回所需的中继状态。
然后,您可以将AuthenticationSuccessHandler
更改为org.springframework.security.saml.SAMLRelayStateSuccessHandler
,以便在成功进行身份验证后重定向到从中继状态返回的URL。