/** * 重新賦值權限(在比如:給一個角色臨時添加一個權限,需要調用此方法刷新權限,否則還是沒有剛賦值的權限) * @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(); }
可封裝成一個工具類的方法,直接調用即可