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

每当我调用subject.isPermitted()时,它都会向db发送一个sql.

我该如何缓存它?任何例子?谢谢.

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

数据源:

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

最佳答案 您需要在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,

莱斯

点赞