Плагин Shiro Grails - конфиг - PullRequest
1 голос
/ 26 декабря 2011

настройка кэша сеанса shiro с помощью ehcache + terracotta, установка этих конфигов в config.groovy -

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

// Это имя соответствует имени кэша в ehcache.xml: security.shiro.sessionDAO.activeSessionsCacheName = "shiro-activeSessionsCache" security.shiro.securityManager.sessionManager.sessionDAO = "org.apache.shiro.session.mgt.eis.

// Настройка EhCacheManager: security.shiro.cacheManager = "org.apache.shiro.cache.ehcache.EhCacheManager" security.shiro.cacheManager.cacheManagerConfigFile = "classpath: session_ehcache.xml"

// Настройка вышеупомянутого CacheManager в SecurityManager Широ // использовать его для всех нужд кэширования Сиро: security.shiro.securityManager.cacheManager = "org.apache.shiro.cache.ehcache.EhCacheManager"

но похоже, что плагин shiro не читает конфигурации, в качестве префикса использовал "security.shiro"

Заранее спасибо

1 Ответ

0 голосов
/ 05 января 2012

Понял, что это можно сделать одним из способов -

1.Настроить (переопределить определение плагина) правильный bean-компонент shiroSecurityManager на 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"
...