权限控制 基于springMVC 拦截器 怎么控制资源
测试控制层:
@RequiresPermission("user")
@RequestMapping("/pt1")
private void PermissionText1(){
}
@RequiresPermission("admin")
@RequestMapping("/pt2")
private void PermissionText2(){
}
@RequiresPermission("superAdmin")
@RequestMapping("/pt3")
private void PermissionText3(){
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
if (handler.getClass().isAssignableFrom(HandlerMethod.class)) {
RequiresPermission permission = ((HandlerMethod) handler).getMethodAnnotation(RequiresPermission.class);
//没有注明权限 或者权限为user 则都默认为用户的权限
String value = permission.value();
if (permission == null && "user".equals(value) ) {
//遍历用户的资源
ArrayList<Integer> roleTypes = new ArrayList<>();
roleTypes.add(RoleTypeConstant.ROLE_USER);
//
}else if ("admin".equals(value)){
//遍历管理员的资源
ArrayList<Integer> roleTypes = new ArrayList<>();
roleTypes.add(RoleTypeConstant.ROLE_ADMIN);
}else if ("superAdmin".equals(value)){
//遍历超级管理员的资源
ArrayList<Integer> roleTypes = new ArrayList<>();
roleTypes.add(RoleTypeConstant.ROLE_SUPER_ADMIN);
}
}
else{
}
return false;
}
从注释解析出user admin superAdmin 怎么控制资源
疑问
if (permission == null && "user".equals(value) ) {}
该怎么判断 说下思路谢谢
基于RBAC模型 有五张表;