验证用户是不是管理员是不是多余的
来源:7-2 添加分类和更新分类名字功能开发
lovis
2017-11-07
@RequestMapping("add_category.do") @ResponseBody public ServerResponse addCategory(HttpSession session,String categoryName,@RequestParam(value = "parentId",defaultValue = "0") int parentId){ User user = (User)session.getAttribute(Const.CURRENT_USER); if(user == null){ return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(),"用户未登录,请登录"); } //校验一下是否是管理员 if(iUserService.checkAdminRole(user).isSuccess()){ //是管理员 //增加我们处理分类的逻辑 return iCategoryService.addCategory(categoryName,parentId); }else{ return ServerResponse.createByErrorMessage("无权限操作,需要管理员权限"); } }
添加品类的前提是session中用户存在并且是管理员,而判断用户是不是管理员是由UserManagerController完成。
后面这段校验管理员的无论user 是否为 null都不会被执行?!
如果user != null, 说明已经登录,UserManagerController校验user是不是管理员。无存在意义。
user == null,存在两种情况
2.1 用户一开始就未登录
2.2 session信息过期
这两种情况在发送add_category.do请求的时候,return status = 10 强制登录。校验管理员代码不会被执行。
写回答
2回答
-
有意义的,user !=null 不能代表user是管理员
2. 强制登录是登录
简单来说 第一步校验是否登录 第二步校验是否是管理员,只有管理员才能执行。
这里必须考虑纵向越权的问题
寻水的鱼回答的很对
012017-11-08 -
寻水的鱼丶
2017-11-07
好像是考虑纵向越权吧,假如用普通用户登录,然后调用这个接口那不就可以有管理员权限了么。。所以说是有存在的必要的。个人见解,还是等老师来回答比较专业
112017-11-08
相似问题