CacheManager属性已设置--Apache Shiro

时间:2012-01-06 07:38:47

标签: google-app-engine shiro

如何在使用Apache shiro时设置cacheManager属性。在调试时,我正在获得INFO,

80104 [1045903843@qtp-967078155-3] INFO org.apache.shiro.realm.AuthorizingRealm - No cache or cacheManager properties have been set.  Authorization cache cannot be obtained.

我正在使用JSF2和Google Cloud SQL。

2 个答案:

答案 0 :(得分:4)

如果使用Shiro的INI配置,则像任何其他bean属性一样设置SecurityManager的cacheManager属性。例如:

[main]

cacheManager = com.something.impl.SomeCacheManager
# config cacheManager as necessary, e.g.
# cacheManager.foo = bar

securityManager.cacheManager = $cacheManager

您可以使用开箱即用的EhCacheManager或自己实现CacheManagerCache接口来使用自定义缓存后备存储(例如Memcache,Coherence,GigaSpaces,任何现代NoSQL Key /价值商店等......)

答案 1 :(得分:1)

似乎EhCacheManager不是shiro-core 1.2.1的一部分(无论如何都在Maven包中)。我通过将以下内容添加到shiro.ini中的[main]部分来解决了这个问题:

[main]
builtInCacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $builtInCacheManager