如何在使用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。
答案 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或自己实现CacheManager
和Cache
接口来使用自定义缓存后备存储(例如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