gpt4 book ai didi

playframework-2.0 - 升级到 SecureSocial 2.0.12,现在 session 没有被保留

转载 作者:行者123 更新时间:2023-12-04 15:24:00 25 4
gpt4 key购买 nike

我使用的是 SecureSocial 2.0.7,我实现了一个 UserServicePlugin,用户可以登录。我可以停止并重新启动服务器(或重新编译或其他),用户将保持登录状态。

自从升级到 2.0.12 后,登录 session 在服务器重新启动后不会持续存在。

我在 UserServicePlugin 中的每个方法中都添加了调试日志记录。 .用户是 saved登录时。但是,当服务器重新启动并且我尝试以以前登录的用户身份访问页面时,我只会在日志中看到:

[info] play - database [default] connected at jdbc:postgresql://localhost/xxxxxx
[info] application - [securesocial] loaded templates plugin: sec.SecureSocialViews
[info] play - Starting application default Akka system.
[info] application - [securesocial] loaded user service: class sec.LoginUserService
[info] application - [securesocial] loaded password hasher bcrypt
[info] application - [securesocial] loaded identity provider: userpass
[info] play - Application started (Dev)
[debug] application - [securesocial] calling deleteExpiredTokens()
[debug] application - deleteExpiredTokens
[debug] application - [securesocial] anonymous user trying to access : '/supplier/requests'

有任何想法吗?我想知道是否由于某种原因,登录 cookie 甚至在检查现有登录 session 之前就被核爆了……

我正在使用用户名/密码身份验证。

最佳答案

用户信息在 session 中的存储方式发生了变化。该模块现在使用一个单独的,而不是使用 Play session cookie。此 cookie 有一个身份验证器 ID。用户信息现在存储在服务器端的 AuthenticatorStore 实现中。默认实现使用 Play 缓存,这就是您需要在重新编译时再次进行身份验证的原因。正在清除缓存中的数据。

如果您想在重新编译/重新启动后保持用户登录,您可以:

  • 创建持久化事物的 AuthenticatorStore 的实现。
  • 更改 ehcache.xml 文件以保留在文件系统中 (diskPersistent="true")。
  • 关于playframework-2.0 - 升级到 SecureSocial 2.0.12,现在 session 没有被保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16625340/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com