成功验证后的Spring-SAML Endless重定向循环

时间:2018-02-12 23:02:42

标签: spring-security saml spring-saml okta

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并抛出异常,然后将浏览器发送到无限重定向。

有没有人见过这个?

2 个答案:

答案 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再次进行身份验证。