SAML身份验证成功后:
AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;https://localhost:8443/saml/metadata;http://www.okta.com/exkdwf3hodKFkefLO0h7;;;
浏览器被重定向回无限循环。
我坐着调试器逐步执行Spring代码,看起来它在BasicAuthenticationFilter中调用SAMLAuthenticationProvider时出错,它不支持UsernamePasswordAuthenticationToken并抛出异常,然后将浏览器发送到无限重定向。
有没有人见过这个?
答案 0 :(得分:0)
起初我尝试将Okta的开发者指南解决方案整合到我公司的应用程序中:
https://developer.okta.com/blog/2017/03/16/spring-boot-saml
使用spring-security-saml-dsl库。
失败了,不确定为什么要么是因为SpringBoot配置还是其他原因。过滤器被错过配置并将浏览器抛入无限重定向循环。
相反,我使用XML配置回到Spring-SAML项目,它开箱即用。
答案 1 :(得分:0)
我通过将Cookie的使用期限(有效期限)设置为与会话使用期限相同,在查明了问题的来源5天后已解决了该问题。似乎具有ID的cookie(对我来说是JSESSIONID,因为我与tomcat一起工作)
对于我在tomcat中的情况,我已对此进行了设置:
<session-config>
<session-timeout>60</session-timeout>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
<max-age>3600</max-age>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
现在会话结束后,该cookie也将被删除。可以使用新的Cookie再次进行身份验证。