2

ehcache+terracotta を使用して shiro セッション キャッシュをセットアップし、これらの構成を config.groovy に配置します。

security.shiro.sessionDAO = "org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO"

// この名前は ehcache.xml のキャッシュ名と一致します: "

// EhCacheManager を設定します: security.shiro.cacheManager = "org.apache.shiro.cache.ehcache.EhCacheManager" security.shiro.cacheManager.cacheManagerConfigFile = "classpath:session_ehcache.xml"

// Shiro の SecurityManager で上記の CacheManager を構成し、 // Shiro のすべてのキャッシング ニーズにそれを使用します: security.shiro.securityManager.cacheManager = "org.apache.shiro.cache.ehcache.EhCacheManager"

しかし、shiro プラグインが設定を読み取っていないように見えます。接頭辞として「security.shiro」を使用しています

前もって感謝します

4

1 に答える 1

0

これは、いずれかの方法で実行できることがわかりました-

1. 適切な shiroSecurityManager Bean を次の場所に構成 (プラグイン定義をオーバーライド) しますresources.groovy

myShiroSessionDAO(org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO) {
    activeSessionsCacheName="shiro-activeSessionsCache"
}
myShiroSessionManager(org.apache.shiro.web.session.mgt.DefaultWebSessionManager) {
    sessionDAO = ref("myShiroSessionDAO")
}
myShiroCacheManager(org.apache.shiro.cache.ehcache.EhCacheManager) {
    cacheManagerConfigFile = "classpath:session_ehcache.xml"
   //cacheManager = CacheManager.create()
}
shiroSecurityManager(org.apache.shiro.web.mgt.DefaultWebSecurityManager) {
    cacheManager = ref("myShiroCacheManager")
    sessionManager = ref("myShiroSessionManager")
}

また

2.shiroSecurityManager を設定します。Bootstrap.groovy

def sessionDao = new org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO()
sessionDao.activeSessionsCacheName="shiro-activeSessionCache"
shiroSecurityManager.sessionManager.sessionDAO = sessionDao
def cacheManager = new org.apache.shiro.cache.ehcache.EhCacheManager()
cacheManager.cacheManagerConfigFile = "classpath:session_ehcache.xml"
shiroSecurityManager.cacheManager = cacheManager

@Config.groovy置く -

security.shiro.session.mode="native"
于 2012-01-05T04:23:49.057 に答える