shiro 一个url支持多个访问角色
直接上代码
package com.sys.zyjd.common.security;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.filter.authz.RolesAuthorizationFilter;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
/**
* shiro自带的roles[admin,ss]多角色之间是and关系而非or,但是shiro自带的方法同一权限只能分配一个角色。
* 本类要实现一个方法支持多个访问角色
*
* @Author agnils
* @create 2022/1/27 10:17
*/
public class RoleFilter extends RolesAuthorizationFilter {
@Override
public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException {
// return super.isAccessAllowed(request, response, mappedValue);
Subject subject = getSubject(request, response);
String[] roles = (String[]) mappedValue;
if (roles == null || roles.length == 0) {
return false;
}
for (String role : roles) {
if (subject.hasRole(role)) {
return true;
}
}
return false;
}
}
一天踩一坑,
坑坑不一样,
管它浅与深,
都得填平它。
万坑之主就是我…加油!MT agnils

浙公网安备 33010602011771号