2012-01-06 11 views
7

Apache shiroを使用しているときにcacheManagerプロパティを設定する方法を教えてください。デバッグ時に、私はINFOのようになります。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プロパティを設定します。例:あなたは(カスタムキャッシュバッキングストアを使用するアウトオブボックスEhCacheManagerを使用するかCacheManagerCacheインターフェースを自分で実装することができます

[main] 

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

securityManager.cacheManager = $cacheManager 

例えばMemcacheの、コ​​ヒーレンス、GigaSpaces、現代の任意のNoSQLキー/値ストアなど)

1

EhCacheManagerはshiro-core 1.2.1の一部ではないようです(とにかくMavenパッケージ内)。私はshiro.iniの私の[main]セクションに以下を追加することで、問題を解決:

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

こんにちはアラン - Ehcacheのサポートは、[プラグイン]として提供されているので、我々は、すべての史郎ユーザーにEhcacheの依存関係を強制することはできません(http://search.maven.org/#search%7Cga%7C1%7Cshiro-ehcache)。ランタイムクラスパスに追加するだけですぐにEhCacheManagerを使用できます。 HTH! –

+1

ああ、それを知らなかった。しかし、あなたがそれがコアライブラリに含まれていることはすぐにわかったと言いました。ありがとう! –

関連する問題