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 配置,您可以像设置任何其他 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 键/值存储等...)

于 2012-01-06T18:14:30.387 回答
1

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

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