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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在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,

以上是关于如何在grails shiro中使用缓存权限的主要内容,如果未能解决你的问题,请参考以下文章

您可以在没有角色和权限的情况下将 Shiro 用于 Grails 吗?

如何限制grails shiro security中的操作

Grails Shiro LDAP用户/角色身份验证:如何/如何捕获和存储以供重用

如何在我的项目中实现 Grails 的 Shiro 安全性

如何使用 shiro 在 grails 2.0 中实现 BasicHttpAuthentication?有啥亮眼的例子吗?

SpringBoot项目+Shiro(权限框架)+Redis(缓存)集成