• spring boot 使用拦截器,注解 实现 权限过滤


    这里的权限过滤,配合注解来使用,我目的是只要加上了特定注解的方法,才会进行校验(如果不需要的话,可以将判断注解的逻辑去掉,就跟一般的一样了)
     
    1:定义注解:
    /**
     * 权限校验
     */
    @Documented
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface RoleCheck {
        RoleEnum[] role();
    }
    userRoleEnum里定义角色的值
     
    2:创建RoleInterceptor 类,重写peHandle方法,方法中写具体的校验逻辑
    /**
     * 用于角色校验
     *
     */
    @Service
    public class RoleInterceptor extends BaseHandlerInterceptorAdapter {
         @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HandlerMethod handlerMethod = (HandlerMethod) handler;
            RoleCheck roleCheck = handlerMethod.getMethodAnnotation(RoleCheck.class);
            //如果方法上没有roleCheck注解,则校验通过
            if (roleCheck == null){
                return true;
            }
            //该方法未赋予权限,不通过
            if (roleCheck.role() == null){
                return false;
            }
        }
    }
     
    3:在要拦截的方法上加入注解
    @RequestMapping(value = {“/getstudent"})
    @RoleCheck(role = {RoleEnum.TEACHER})
    public String getStudentInfo(@RequestParam String studentNo) {
        return studentManager.getstudentInfoByNo(studentNo);
    }
     
    2:创建一个自定义的adapter的类,继承WebMvcConfigurerAdapter 类
    @Configuration
    public class DefineAdapter extends WebMvcConfigurerAdapter {
    @Autowired
    public RoleInterceptor roleInterceptor;
    @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(roleInterceptor).addPathPatterns("/getstudent");
            super.addInterceptors(registry);
        }
    }
    重写 addInterceptors方法,将你要拦截的url加入。
     
    WebMvcConfigurerAdapter 继承后,拦截器会在工程启动的时候就加入进来
  • 相关阅读:
    超酷震撼 HTML5/CSS3动画应用及源码
    精美jQuery插件及源码 前端开发福利
    web前端炫酷实用的HTML5应用和jQuery插件
    8个web前端的精美HTML5 & CSS3效果及源码下载
    分享web前端七款HTML5 Loading动画特效集锦
    7款超酷HTML5 3D动画精选应用及源码
    8个WEB前端创意HTML5动画应用精选
    让人心动的jQuery插件和HTML5动画
    华丽的HTML5/jQuery动画和应用 前端必备
    炫酷实用的jQuery插件 涵盖菜单、按钮、图片
  • 原文地址:https://www.cnblogs.com/zhangXingSheng/p/7744997.html
Copyright © 2020-2023  润新知