為什么數(shù)組中有不符合條件的依舊通過驗(yàn)證
roles中只有“admin”,而rolesOr[“admin”,“admin1”],每次都能通過驗(yàn)證?打印role也只有一個(gè)“admin”,這是為什么呢?瀏覽器,idea,tomcat都重啟過了,緩存也清了。
roles中只有“admin”,而rolesOr[“admin”,“admin1”],每次都能通過驗(yàn)證?打印role也只有一個(gè)“admin”,這是為什么呢?瀏覽器,idea,tomcat都重啟過了,緩存也清了。
2019-02-22
舉報(bào)
2019-05-09
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);
? ? }
}
2019-03-06
rolesOr這個(gè)自定義的filter就是實(shí)現(xiàn)滿足數(shù)組參數(shù)中的任意一個(gè)角色都能通過的,過濾實(shí)現(xiàn)的是or的關(guān)系。而shiro自帶的roles角色過濾是and的關(guān)系.