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

问题描述 投票:4回答:1

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

grails ehcache shiro
1个回答
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,

© www.soinside.com 2019 - 2024. All rights reserved.