用shiro做权限控制的时候,变更用户或者角色的权限后刷新界面不会重新加载权限,需要重启tomcat或者用户重新登录,通过下面的方式可以解决这个问题,但仅仅针对于单机
代码使用:
工具类中:
/**
*
* @Title: clearAuth
* @Description: TODO 清空所有资源权限
* @return void 返回类型
*/
public static void clearAuth(){
RealmSecurityManager rsm = (RealmSecurityManager)SecurityUtils.getSecurityManager();
UserRealm realm = (UserRealm) rsm.getRealms().iterator().next();
realm.clearAuthz();
}
自定义AuthorizingRealm中:
public void clearAuthz(){
this.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals());
}
在进行权限修改完成之后,进行去权限的清空