5

我正在使用securesocial它工作正常,但现在每次我更改一些scala代码时,我都必须再次登录。在开发模式下是否有可能在会话中伪造用户,所以我不必经常登录?

谢谢,

乔里斯·维伦斯

4

2 回答 2

12

SecureSocial 默认使用默认 Play 缓存来存储身份验证器(将 cookie 与登录用户匹配)。默认播放缓存是 EHCache,它是使用您可以在 jar 中找到的 ehcache.xml 配置的。默认配置严格存储在内存中,这意味着当应用程序重新启动时,它会丢失所有值。幸运的是,覆盖 EHCache 配置以写入磁盘非常容易。

将 jar 中的 ehcache.xml 复制到您的配置目录。添加<diskStore path="java.io.tmpdir"/>并更改diskPersistenttrue

所以我的看起来像这样:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd" updateCheck="false">
<diskStore path="java.io.tmpdir"/>
<defaultCache
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="false"
        maxElementsOnDisk="10000000"
        diskPersistent="true"
        diskExpiryThreadIntervalSeconds="120"
        memoryStoreEvictionPolicy="LRU"
        />
</ehcache>

如果您有兴趣了解如何配置其余部分,请参阅 ehcache-failsafe.xml 文件中的一些文档,该文件也在 Play jar 中。

于 2013-08-27T01:59:42.300 回答
-2

发生这种情况是因为在 DEV 模式下,当您更改代码时,Play 会重新启动应用程序。因此,示例用户服务中的数据会丢失。

于 2012-11-04T03:10:16.240 回答