原理:
清空shiro缓存的权限,shiro就会重新查询新的权限;
步骤:
1、在自定义的Realm增加方法:
public void clearAuthz(){
this.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals());
}
2、在自己的service调用这个方法:
RealmSecurityManager rsm = (RealmSecurityManager)SecurityUtils.getSecurityManager();
AuthRealm authRealm = (AuthRealm)rsm.getRealms().iterator().next();
authRealm.clearAuthz();
应用:
当登录系统后,需要重新授予角色,但不退出登录,通过调用刷新权限的方法,即可加载新的权限。