亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么數組中有不符合條件的依舊通過驗證

roles中只有“admin”,而rolesOr[“admin”,“admin1”],每次都能通過驗證?打印role也只有一個“admin”,這是為什么呢?瀏覽器,idea,tomcat都重啟過了,緩存也清了。

正在回答

2 回答


public class RolesAuthorizationFilter extends AuthorizationFilter {

? ? public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException {


? ? ? ? Subject subject = getSubject(request, response);

? ? ? ? String[] rolesArray = (String[]) mappedValue;

? ? ? ? if (rolesArray == null || rolesArray.length == 0) {

? ? ? ? ? ? //no roles specified, so nothing to check - allow access.

? ? ? ? ? ? return true;

? ? ? ? }

? ? ? ? Set<String> roles = CollectionUtils.asSet(rolesArray);

? ? ? ? return subject.hasAllRoles(roles);

? ? }

}


0 回復 有任何疑惑可以回復我~

rolesOr這個自定義的filter就是實現滿足數組參數中的任意一個角色都能通過的,過濾實現的是or的關系。而shiro自帶的roles角色過濾是and的關系.

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么數組中有不符合條件的依舊通過驗證

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號