7

Apache shiro を使用しているときに、cacheManager プロパティを設定するにはどうすればよいですか。デバッグ時に、次のような情報を取得しています。

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 を使用しています。

4

2 に答える 2

4

Shiro の INI 構成を使用する場合は、SecurityManager の cacheManager プロパティを他の Bean プロパティと同様に設定します。例えば:

[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 キー/バリュー ストアなど) を使用できます。

于 2012-01-06T18:14:30.387 に答える
1

EhCacheManagerはshiro-core1.2.1の一部ではないようです(とにかくMavenパッケージに含まれています)。shiro.iniの[main]セクションに以下を追加することで、問題を解決しました。

[main]
builtInCacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $builtInCacheManager
于 2012-08-10T09:51:50.677 に答える