【问题标题】:Spring-SAML Endless redirect loop after a successful authentication成功认证后的 Spring-SAML 无休止的重定向循环
【发布时间】:2018-07-23 05:50:36
【问题描述】:

SAML 认证成功后:

AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;https://localhost:8443/saml/metadata;http://www.okta.com/exkdwf3hodKFkefLO0h7;;;

浏览器被重定向回无限循环。

我坐在一个调试器旁,单步执行 Spring 代码,并且看起来它在调用不支持 UsernamePasswordAuthenticationToken 的 SAMLAuthenticationProvider 的 BasicAuthenticationFilter 中出错,并引发异常,进而将浏览器发送到无休止的重定向。

有人见过吗?

【问题讨论】:

    标签: spring-security saml spring-saml okta


    【解决方案1】:

    在查明问题根源 5 天后,我已通过将 cookie 年龄(过期)设置为与会话年龄相同来解决此问题。似乎具有 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 再次进行身份验证。

    【讨论】:

      【解决方案2】:

      起初我尝试将 Okta 的开发人员指南的解决方案整合到我公司的应用程序中,该应用程序位于:

      https://developer.okta.com/blog/2017/03/16/spring-boot-saml

      使用 spring-security-saml-dsl 库。

      那失败了,不知道为什么是因为 SpringBoot 配置或其他原因。过滤器配置错误,使浏览器陷入无休止的重定向循环。

      相反,我回到了带有 XML 配置的 Spring-SAML 项目,它开箱即用,效果很好。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2021-12-12
      • 2016-12-18
      • 2019-09-20
      • 2022-11-17
      相关资源
      最近更新 更多