java - 这个标题日期来自哪里? (带 Tomcat 的 spring-saml2)

标签 java spring tomcat spring-saml

我正在使用 spring-security-saml2 api 建立连接。

它在一段时间内运行良好,但最近我在响应 header 中的日期遇到了一些麻烦。 当调用过滤器 org.springframework.security.saml.SAMLProcessingFilter (url -> /saml/SSO/alias/defaultAlias) 时,响应包含一个 header date 并且这个日期SOMETIMES晚了 2 小时。

因此我得到一个错误 Etat HTTP 401 - Authentication Failed : Response issue time is either too old or with date in the future, skew 60, time 2014-10-22T08:25:55.967Z (在 10h25 测试)

我不知道日期是如何检索的,也不知道为什么这种行为只是定期发生。 我正在寻找任何线索。谢谢。

最佳答案

你在哪个时区? 2014-10-22T08:25:55.967Z 采用 UTC,因此您本地时间之间的 2 小时差异可以用 GMT+2(例如法国夏令时)来解释。

我的猜测是您的 IDP 和 SP 之间的时钟没有正确同步,有时响应对象的创建时间差 (2014-10-22T08:25:55.967Z) 和SP 机器上的时间超过 60 秒。

尝试更改您的 WebSSOProfileConsumerImpl bean 并将其声明如下,它可能会解决您的问题:

<bean id="webSSOprofileConsumer" class="org.springframework.security.saml.websso.WebSSOProfileConsumerImpl">
    <property name="responseSkew" value="180"/>
</bean>

关于java - 这个标题日期来自哪里? (带 Tomcat 的 spring-saml2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26505340/

相关文章:

java - 为什么这总是评估为假?

Spring 和 acgi 安全性是 tomcat 中负载平衡的问题

java - 在 Tomcat 中自动检测 URI 编码

java - 为什么有些服务器同时运行 Tomcat 和 Apache Web Server?

java - 将数据从 hibernate 层提取到另一层的最佳方法是什么?

java - 延迟用户访问,直到 webapp 正确初始化

java - OpenCV + OpenGL : copy gl texture, 使用 OpenCV 修改并渲染

java - 我在更新现有的 aws cloud front CNAME 时遇到问题

java - 是否可以使用findbugs的代码分析来检索在java中的函数调用中传递的变量的名称

java - 玩框架2.4 GlobalSettings。这里没有预期的界面