Shiro grails plugin - config

孤人 提交于 2019-12-12 09:02:33

问题


setting up shiro session cache with ehcache+terracotta ,putitng these configs in config.groovy -

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

// This name matches a cache name in ehcache.xml: security.shiro.sessionDAO.activeSessionsCacheName = "shiro-activeSessionsCache" security.shiro.securityManager.sessionManager.sessionDAO = "org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO"

// Configure The EhCacheManager: security.shiro.cacheManager = "org.apache.shiro.cache.ehcache.EhCacheManager" security.shiro.cacheManager.cacheManagerConfigFile = "classpath:session_ehcache.xml"

// Configure the above CacheManager on Shiro's SecurityManager // to use it for all of Shiro's caching needs: security.shiro.securityManager.cacheManager = "org.apache.shiro.cache.ehcache.EhCacheManager"

but looks like shiro plugin is not reading configurations, have used "security.shiro" as prefix

Thanks in advance


回答1:


Figured out this could be done either of one way -

1.Configure (override over plugin definition) proper shiroSecurityManager bean at 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")
}

OR

2.Configure shiroSecurityManager at 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 put -

security.shiro.session.mode="native"


来源:https://stackoverflow.com/questions/8633910/shiro-grails-plugin-config

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!