成功完成SAML身份验证:
AuthNRequest;SUCCESS;0:0:0:0:0:0:0:1;https://localhost:8443/saml/metadata;http://www.okta.com/exkdwf3hodKFkefLO0h7;;;
浏览器被重定回到无尽的环路中。
我坐在弹簧代码中踏上了一个调试器,看起来它在basicAuthentication filter中错误地调用samlauthentication provider,而samlauthentication provider不支持用户nameamepasswordauthentication token并抛出例外,从而使浏览器将浏览器发送到一个无尽的红色端。
之前有人看过吗?
首先,我尝试将Okta的开发人员指南的解决方案纳入我公司的应用程序:
https://developer.okta.com/blog/2017/03/16/spring-boot-saml
使用Spring-Security-SAML-DSL库。
失败了,不确定为什么是由于Springboot配置或其他原因。过滤器被配置为错过,并将浏览器扔进无尽的重定向循环。
取而代之的是,我带着XML配置回到了Spring-SAML项目,它可以开箱即用。
通过将cookie年龄(到期(设置为与会话年龄相同的5天之后,我已经解决了该问题。似乎具有ID的饼干(对我来说,自从我与Tomcat合作以来就是JSessionId(
对于我在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再次验证。