美文网首页程序员上班这点事儿每天写500字
shiro框架:缓存器Ehcache的详细配置流程

shiro框架:缓存器Ehcache的详细配置流程

作者: 您好简书 | 来源:发表于2019-06-22 10:06 被阅读3次

    1.1 shiro缓存

    针对上边授权频繁查询数据库,需要使用shiro缓存。

    1.1.1 缓存流程

    shiro中提供了对认证信息和授权信息的缓存。shiro默认是关闭认证信息缓存的,对于授权信息的缓存shiro默认开启的。主要研究授权信息缓存,因为授权的数据量大。

    用户认证通过。

    该 用户第一次授权:调用realm查询数据库

    该 用户第二次授权:不调用realm查询数据库,直接从缓存中取出授权信息(权限标识符)。

    1.1.2 使用ehcache

    1.1.2.1 添加Ehcache的jar包

    image.png

    1.1.2.2 配置cacheManager

    image.png

    1.1.2.3 shiro-ehcache.xml

    image.png

    1.1.2.4 缓存清空

    如果用户正常退出,缓存自动清空。

    如果用户非正常退出,缓存自动清空。

    如果修改了用户的权限,而用户不退出系统,修改的权限无法立即生效。

    需要手动进行编程实现:

    在权限修改后调用realm的clearCache方法清除缓存。

    下边的代码正常开发时要放在service中调用。

    在service中,权限修改后调用realm的方法。

    在realm中定义clearCached方法:

    //清除缓存

    public void clearCached() {

    PrincipalCollection principals = SecurityUtils.getSubject().getPrincipals();

    super.clearCache(principals);

    }

    测试清除缓存controller方法:

    image.png

    相关文章

      网友评论

        本文标题:shiro框架:缓存器Ehcache的详细配置流程

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