wso2is 会话超时 - 无效的时间戳?
wso2is session timeout - invalid timestamp?
我们已经从 WSO2 IS 5.0.0.SP1 升级到 WSO2IS 5.1.0,我们正在尝试修复会话过期问题。用户登录时间似乎很长。
在登录屏幕上,我们默认选中了 rememberMe(我们希望用户坚持大约 14 小时 = 840 分钟)
我看到的是 identity.xml:
中的多个超时参数
<SessionDataPersist>
<Enable>true</Enable>
<Temporary>false</Temporary>
<SessionDataCleanUp>
<Enable>true</Enable>
<CleanUpTimeout>841</CleanUpTimeout>
<CleanUpPeriod>30</CleanUpPeriod>
</SessionDataCleanUp>
<OperationDataCleanUp>
<Enable>true</Enable>
<CleanUpPeriod>30</CleanUpPeriod>
</OperationDataCleanUp>
</SessionDataPersist>
</JDBCPersistenceManager>
...
<TimeConfig>
<SessionIdleTimeout>840</SessionIdleTimeout>
<RememberMeTimeout>840</RememberMeTimeout>
</TimeConfig>
...
<PersistanceCacheTimeout>900</PersistanceCacheTimeout>
<SessionIndexCacheTimeout>900</SessionIndexCacheTimeout>
但似乎用户甚至在第二天 (24h) 就登录了
现在检查数据库的会话超时,我们看到 time_created 甚至放置在很远的将来(3.5 天)。
select session_id , session_type, time_created, operation, tenant_id from idn_auth_session_store where session_id='8d761e3d-c2c8-4a50-b58f-dc20822a0000'
8d761e3d-c2c8-4a50-b58f-dc20822a0000 | SAMLSSOSessionIndexCache | 1467171230156905138 | STORE | 0
似乎 1467171230156905138 是 2016 年 6 月 29 日,星期三 03:33:50 GMT
问题是 - time_created 是否用作过期时间戳,或者它是否被错误地转换了?如果它被用作到期日期 - 它真正配置在哪里?
编辑:
我从代码中看到的值是什么(我们不能只使用一个简单的 ms 时间戳吗?):
currentStandardNano = currentStandardNano + (currentSystemNano - FrameworkServiceDataHolder.getInstance().getNanoTimeReference());
这有效地移动了未来服务器正常运行时间值的时间戳。有什么原因吗?
感谢您的任何见解
这已被确定为身份服务器 5.1.0 中的一个问题,并已在未来版本中得到修复。这已被讨论 here。
我们已经从 WSO2 IS 5.0.0.SP1 升级到 WSO2IS 5.1.0,我们正在尝试修复会话过期问题。用户登录时间似乎很长。
在登录屏幕上,我们默认选中了 rememberMe(我们希望用户坚持大约 14 小时 = 840 分钟)
我看到的是 identity.xml:
中的多个超时参数 <SessionDataPersist>
<Enable>true</Enable>
<Temporary>false</Temporary>
<SessionDataCleanUp>
<Enable>true</Enable>
<CleanUpTimeout>841</CleanUpTimeout>
<CleanUpPeriod>30</CleanUpPeriod>
</SessionDataCleanUp>
<OperationDataCleanUp>
<Enable>true</Enable>
<CleanUpPeriod>30</CleanUpPeriod>
</OperationDataCleanUp>
</SessionDataPersist>
</JDBCPersistenceManager>
...
<TimeConfig>
<SessionIdleTimeout>840</SessionIdleTimeout>
<RememberMeTimeout>840</RememberMeTimeout>
</TimeConfig>
...
<PersistanceCacheTimeout>900</PersistanceCacheTimeout>
<SessionIndexCacheTimeout>900</SessionIndexCacheTimeout>
但似乎用户甚至在第二天 (24h) 就登录了
现在检查数据库的会话超时,我们看到 time_created 甚至放置在很远的将来(3.5 天)。
select session_id , session_type, time_created, operation, tenant_id from idn_auth_session_store where session_id='8d761e3d-c2c8-4a50-b58f-dc20822a0000'
8d761e3d-c2c8-4a50-b58f-dc20822a0000 | SAMLSSOSessionIndexCache | 1467171230156905138 | STORE | 0
似乎 1467171230156905138 是 2016 年 6 月 29 日,星期三 03:33:50 GMT
问题是 - time_created 是否用作过期时间戳,或者它是否被错误地转换了?如果它被用作到期日期 - 它真正配置在哪里?
编辑:
我从代码中看到的值是什么(我们不能只使用一个简单的 ms 时间戳吗?):
currentStandardNano = currentStandardNano + (currentSystemNano - FrameworkServiceDataHolder.getInstance().getNanoTimeReference());
这有效地移动了未来服务器正常运行时间值的时间戳。有什么原因吗?
感谢您的任何见解
这已被确定为身份服务器 5.1.0 中的一个问题,并已在未来版本中得到修复。这已被讨论 here。