2012-01-06 74 views
7

如何在使用Apache shiro時設置cacheManager屬性。在調試時,我得到的信息如下:CacheManager屬性已設置 - Apache Shiro

80104 [[email protected]] INFO org.apache.shiro.realm.AuthorizingRealm - No cache or cacheManager properties have been set. Authorization cache cannot be obtained. 

我正在使用JSF2和Google Cloud SQL。

回答

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接口來使用自定義緩存後備存儲器(例如內存緩存,一致性,GigaSpaces的,任何現代的NoSQL鍵/價值商店等)

1

EhCacheManager似乎不是shiro-core 1.2.1的一部分(無論如何都在Maven包中)。我加入的問題解決了以下信息才能shiro.ini我的[主]部分:

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

嗨阿蘭 - 我們不能強迫所有用戶四郎依賴的Ehcache,這樣的Ehcache支持是作爲一個[插件] (http://search.maven.org/#search%7Cga%7C1%7Cshiro-ehcache)。只需將它添加到運行時類路徑中,即可立即使用EhCacheManager。 HTH! – 2012-08-10 18:07:31

+1

啊,不知道。不過,當你提到它是包含在覈心庫中的開箱即用的時候。謝謝! – 2012-08-10 18:50:38