4

を呼び出すたびsubject.isPermitted()に、SQL が db に送信されます。
どうすればキャッシュできますか? 例はありますか?ありがとう。


shiro grails プラグインのドキュメントを読みましたが、理解できません。

情報源:

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = true
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}

cachemanager を shiro に設定するには? spring.resource を試すと、エラーがスローされます。

cachemanager のインスタンス Bean 名は何ですか? 他にsthを設定する必要がありますか?

4

1 に答える 1

2

Shiro の SecurityManager で org.apache.shiro.cache.CacheManager インスタンスを構成する必要があります。Shiro のすぐに使える Realm 実装のほとんどは、構成された CacheManager の操作方法を認識しており、Realm パーミッション ルックアップから返された AuthorizationInfo を自動的にキャッシュします。

Grails Shiro プラグインを使用してこれを行う方法はわかりませんが、Shiro の INI では、次のようにします。

[main]
...
cacheManager = com.my.implementation.of.CacheManager
securityManager.cacheManager = $cacheManager
...

Grails-user メーリング リストに問い合わせて、Grails Shiro プラグイン用にこれを構成するためのより「grailsy」な方法があるかどうかを確認することをお勧めします。

HTH、

于 2010-12-13T18:25:34.787 に答える