shiro 权限加密下的密码修改你会发现出现修改后只能用原先代码密码才登录上

原因:缓存问题  好吧,这很容易想到  

然而: 一开始我将ssm 中配置的缓存 清除 ,然而并没有什么用

 

  <!--授权信息缓存-->
    <cache name="authorizationCache"
           maxEntriesLocalHeap="2000"
           eternal="false"
           timeToIdleSeconds="0"
           timeToLiveSeconds="0"
           overflowToDisk="false"
           statistics="true">
    </cache>

解决: https://blog.csdn.net/qq_38058332/article/details/83416208

引入 realm   shiro的logout登出,只是将放置PrincipalCollection这个集合置空,删除了session,但是没有清空缓存,手动清除缓存

 //退出并清理缓存
            Subject subject= SecurityUtils.getSubject();
            subject.logout();
            //自定义清除缓存
            Cache<Object,AuthenticationInfo> cache=systemUserRealm.getAuthenticationCache();
            if (cache!=null){
                cache.remove(sysUserDO.getUsername());
            }

 

posted on 2018-12-02 17:15  JSBK  阅读(963)  评论(0编辑  收藏  举报