请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

验证用户是不是管理员是不是多余的

    @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都不会被执行?!

  1. 如果user != null, 说明已经登录,UserManagerController校验user是不是管理员。无存在意义。

  2.  user == null,存在两种情况

    2.1 用户一开始就未登录

    2.2 session信息过期

    这两种情况在发送add_category.do请求的时候,return status = 10  强制登录。校验管理员代码不会被执行。


正在回答

2回答

  1. 有意义的,user !=null 不能代表user是管理员

2. 强制登录是登录

简单来说  第一步校验是否登录 第二步校验是否是管理员,只有管理员才能执行。

这里必须考虑纵向越权的问题

寻水的鱼回答的很对


0 回复 有任何疑惑可以回复我~
  • 提问者 lovis #1
    真羞耻啊.............我只考虑了后台登录判断是不是管理员,而前台...
    自己当了回 纵向越权 反面教材
    回复 有任何疑惑可以回复我~ 2017-11-08 14:59:42
寻水的鱼丶 2017-11-07 17:45:00

好像是考虑纵向越权吧,假如用普通用户登录,然后调用这个接口那不就可以有管理员权限了么。。所以说是有存在的必要的。个人见解,还是等老师来回答比较专业

1 回复 有任何疑惑可以回复我~
  • 提问者 lovis #1
    谢谢老哥
    回复 有任何疑惑可以回复我~ 2017-11-08 15:00:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信