zoukankan      html  css  js  c++  java
  • shiro如何在编辑用户权限后,立即清除原来用户的权限缓存

    最近在弄权限相关的东西,用了shiro后发现权限的缓存会存在redis中,分配用户角色后,并没有刷新缓存,需要手动修改,在网上看了很多博客后,总算试出来一个好用的,

    就是在分配用户角色后,可以使用这段代码来清除想要重置的用户的权限缓存。

    /** 
         * 重新赋值权限(在比如:给一个角色临时添加一个权限,需要调用此方法刷新权限,否则还是没有刚赋值的权限) 
         * @param myRealm 自定义的realm 
         * @param username 用户名 
         */  
        public static void reloadAuthorizing(MyRealm myRealm,String username){  
            Subject subject = SecurityUtils.getSubject();   
            String realmName = subject.getPrincipals().getRealmNames().iterator().next();   
            //第一个参数为用户名,第二个参数为realmName,test想要操作权限的用户   
            SimplePrincipalCollection principals = new SimplePrincipalCollection(username,realmName);   
            subject.runAs(principals);   
            myRealm.getAuthorizationCache().remove(subject.getPrincipals());   
            subject.releaseRunAs();  
        }
  • 相关阅读:
    paip.重装系统需要备份的资料总结..
    poj3078
    poj3009
    poj2151
    poj3274
    poj3436
    VC++:打开、保存文件对话框和浏览文件夹对话框
    目前所有的视频格式都有哪些?
    CMSHFlexGrid 类用法
    Matlab的ActiveX接口_百度文库
  • 原文地址:https://www.cnblogs.com/huashuohehe/p/11743765.html
Copyright © 2011-2022 走看看