shiro修改了某个用户的权限,不能实时加载到subject中,正常只有每次登录会进行授权。下面有种方式可以解决:
自定义realm中添加
public void clearAuthz(){
this.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals());
}
until中新建方法
/**
*
* @Title: clearAuth
* @Description: TODO 清空所有资源权限
* @return void 返回类型
*/
public static void clearAuth(){
RealmSecurityManager rsm = (RealmSecurityManager)SecurityUtils.getSecurityManager();
ShiroDbRealm realm = (ShiroDbRealm)rsm.getRealms().iterator().next();
realm.clearAuthz();
}
每次添加权限时调用