2018.8.2 java电商从1到2--chapter10 SpringMVC拦截器实现权限统一验证

目录

第10章 SpringMVC拦截器实现权限统一验证

10.1 总览

10.2 一期代码回顾

10.3 拦截器的配置

10.4 拦截器的使用

10.5 重构代码


第10章 SpringMVC拦截器实现权限统一验证

10.1 总览

  • 一期代码关于权限判定的演进
  • SpringMVC拦截流程图
  • 拦截器配置与使用
  • HttpServletResponse的重置
  • 登录不拦截
  • 代码重构

 

10.2 一期代码回顾

一期代码中涉及权限校验的部分:

  • 是否登录?
  • 是否是管理员?

如下所示。这部分代码大量重复,可以抽取到拦截器的逻辑中。

@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("无权限操作,需要管理员权限");
        }
    }

 

10.3 拦截器的配置

注意,这里的path格式代表拦截的范围不同。

因为登录不需要拦截,因为它确实需要进行登录逻辑,否则会陷入死循环(想要登录,却被拦截提示请登录)。

可以在配置文件中去掉对登录的拦截,也可以在代码里去掉对登录的拦截,这里采用后者,效果一样。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframewor
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值