【问题标题】:How to use cache permissions in grails shiro如何在 grails shiro 中使用缓存权限
【发布时间】:2011-05-24 10:35:51
【问题描述】:

每次我调用subject.isPermitted(),它都会向数据库发送一条sql。
我怎样才能缓存它?有什么例子吗?谢谢。


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

数据源:

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = true
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider'
}

如何将缓存管理器设置为 shiro?我尝试spring.resource,抛出一个错误。

cachemanager 的实例 bean 名称是什么?我还需要其他配置吗?

【问题讨论】:

    标签: grails ehcache shiro


    【解决方案1】:

    您需要在 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 邮件列表,看看是否有更“grailsy”的方式来配置 Grails Shiro 插件。

    HTH,

    莱斯

    【讨论】:

    • @Les - 我也需要这样做,我想使用 grails 附带的内置缓存支持,但我认为 grails-shriro 插件的实现方式是不可能的。 Grails shiro 插件不扩展任何内置领域(例如 AuthorizingRealm),而是实现了它自己的领域接口。因此,为了进行缓存,我们必须在领域本身中手动进行,不能依赖 shiro 为我们缓存身份验证信息
    猜你喜欢
    • 2012-10-04
    • 2013-04-26
    • 2011-08-14
    • 2021-07-30
    • 2013-08-28
    • 2013-04-28
    • 2013-10-13
    • 2011-03-12
    • 2013-06-28
    相关资源
    最近更新 更多