首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shiro grails插件- config

Shiro grails插件- config
EN

Stack Overflow用户
提问于 2011-12-26 15:49:33
回答 1查看 1.4K关注 0票数 2

使用ehcache+terracotta设置shiro会话缓存,将这些配置放入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.EnterpriseCacheSessionDAO”

//配置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 =Shiro

但是看起来shiro插件没有读取配置,使用了"security.shiro“作为前缀

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-05 12:23:49

我想这可以用一种方法来实现-

1.在resources.groovy中配置(覆盖插件定义)适当的shiroSecurityManager bean

代码语言:javascript
复制
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.在Bootstrap.groovy上配置shiroSecurityManager

代码语言:javascript
复制
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 -

代码语言:javascript
复制
security.shiro.session.mode="native"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8633910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档