上一节说的是基于角色的权限验证,这一节介绍基于权限的角色验证类——PermissionAuthorizationFilter
这个类和前面的基于角色的判定一样,不过使用的权限而已,在配置shiroFilterFactoryBean的时候每一个filter后面的[permission1,permission2]表示的是权限,而且是或的关系,只要一个满足即可。
public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException {
Subject subject = getSubject(request, response);
String[] perms = (String[]) mappedValue;
boolean isPermitted = true;
if (perms != null && perms.length > 0) {
if (perms.length == 1) {
if (!subject.isPermitted(perms[0])) {
isPermitted = false;
}
} else {
if (!subject.isPermittedAll(perms)) {
isPermitted = false;
}
}
}
return isPermitted;
}
同样这个类只适用于每个权限定死的情况,不是很灵活,无法满足后期的权限更改。
本文介绍了Shiro中的PermissionAuthorizationFilter类,该类用于基于权限的角色验证。通过配置shiroFilterFactoryBean,可以设置权限验证规则,支持单一或多个权限验证。
2631

被折叠的 条评论
为什么被折叠?



