zoukankan      html  css  js  c++  java
  • springboot整合shiro之缓存理解

    缓存的作用:用于缓存认证信息和授权信息,不用每次都去数据库里查询数据,而是从缓存中获取。

    当我们在shiro过滤器对一些url进行权限,角色授权时,如 filterMap.put("/user/add", "perms[user:add]");

    程序将自动的去数据库中查询所需要的角色权限信息,一旦我们的菜单和按钮上写入的控制太多,那么将对应查询很多次数据库。

    1:授权认证:

    (1)当第一次访问授权时,会调用自定义Realm的获取授权数据的方法,从数据库中查询授权数据,并将其以登录者的Principal为键,存储在缓存中。以后的每次访问授权,就直接从缓存中获取,而不再从数据库中获取。

    2:清空缓存的时机:

    (1)当退出登录时,会调用清空缓存的方法,将以当前登陆者的Principal为键的缓存中的授权数据清空掉。

    (2)如果修改了用户的权限,而用户不退出系统,修改的权限不会生效,此时需要手动调用realm的clearCache方法清除缓存,待下次访问授权数据时,重新从数据库中获取,并存储在缓存中。

    (3)用户未退出登录的情况下,关闭浏览器,也清空缓存。

    3:缓存方式:

    (1)shiro整合ehcache缓存

    (2)shiro整合redis缓存

  • 相关阅读:
    企业如何搭建数据分析平台
    如何查看Android设备上的分区信息
    从传统企业谈大数据的战略意义
    金融行业的BI应用分析
    Android 5.x 权限问题解决方法
    unity使用ugui自制调色面板
    手机模式及分区
    高通8x12平台开机画面制作工具
    Unity插件
    Android开发小问题集
  • 原文地址:https://www.cnblogs.com/chong-zuo3322/p/12448692.html
Copyright © 2011-2022 走看看