美文网首页
7. Shiro缓存

7. Shiro缓存

作者: 不知名的蛋挞 | 来源:发表于2019-08-22 13:50 被阅读0次

    CacheManagerAware接口

    Shiro内部相应的组件(DefaultSecurityManager)会自动检测相应的对象(如Realm)是否实现了CacheManagerAware并自动注入相应的CacheManager,说白了就是这个对象可以使用缓存了。

    Realm缓存

    Shiro提供了CachingRealm,其实现了CacheManagerAware接口,提供了缓存的一些基础实现;AuthenticatingRealm及AuthorizingRealm也分别提供了对AuthenticationInfo和AuthorizationInfo信息的缓存。

    所以Realm实际上是有缓存的,登录验证通过之后,第一次访问需要授权访问的页面是需要realm验证的,但是之后再访问这个页面就不需要再调用realm的授权方法处理,因为这个数据已经被缓存了。

    Session缓存

    如SecurityManager实现了SessionSecurityManager,其会判断SessionManager是否实现了CacheManagerAware接口,如果实现了会把CacheManager设置给它。

    SessionManager也会判断相应的SessionDAO(如继承自CachingSessionDAO)是否实现了CacheManagerAware,如果实现了会把CacheManager设置给它。

    设置了缓存的SessionManager,查询时先会查缓存,如果找不到才查数据库。

    相关文章

      网友评论

          本文标题:7. Shiro缓存

          本文链接:https://www.haomeiwen.com/subject/dqkjsctx.html