如何在grails shiro中使用缓存权限

时间:2010-12-13 01:58:45

标签: grails ehcache shiro

每当我调用subject.isPermitted()时,它都会向db发送一个sql 我该如何缓存它?任何例子?感谢。


我阅读了shiro grails插件的文档,但无法解决它。

的DataSource:

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名称是什么?我需要配置其他吗?

1 个答案:

答案 0 :(得分: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插件配置它。

HTH,

莱斯