zoukankan      html  css  js  c++  java
  • Spring Boot2 拦截器对静态资源的放行

    Spring Boot2 拦截器对静态资源的放行

    在前面的案例中,我们大量的使用了拦截器。SpringBoot2.x的拦截器会对静态资源进行拦截。下面介绍以下如何在拦截路径的同时,对静态资源进行放行。在前后端分离的项目中,无需进行此操作,前后端分离项目中我们只需要返回状态码,由前端的路由实现页面权限控制。

    addResourceHandlers方法内,映射静态资源

    addInterceptors方法内指定放行规则

     /**
         * 指定静态资源的位置 非前后端分离项目需要注册
         * @param registry
         */
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            /*静态资源的位置*/
            registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
            registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");
            /*放行swagger*/
            registry.addResourceHandler("swagger-ui.html")
                    .addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**")
                    .addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    
        /**
         * 注册拦截器
         *
         * @param registry
         */
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
    
    
            //放行路径
            List<String> jwtExcludePatterns = new ArrayList();
            //druid
            jwtExcludePatterns.add("/druid/**");
            //swagger
            jwtExcludePatterns.add("/webjars/**");
            jwtExcludePatterns.add("/swagger/**");
            jwtExcludePatterns.add("/v2/**");
            jwtExcludePatterns.add("/swagger-ui.html/**");
            jwtExcludePatterns.add("/swagger-resources/**");
            //系统静态资源的放行  前后端分离项目不用考虑静态资源的放行,只需要验权即可
            jwtExcludePatterns.add("/");
            jwtExcludePatterns.add("/index.html");
            jwtExcludePatterns.add("/css/**");
            jwtExcludePatterns.add("/js/**");
            //需要放行的接口
            jwtExcludePatterns.add("/sys/login");
            jwtExcludePatterns.add("/login");
            jwtExcludePatterns.add("//test/**");
    
    
            registry.addInterceptor(new JWTInterceptor())
                    .addPathPatterns("/**")
                    //放行的静态资源列表
                    .excludePathPatterns(jwtExcludePatterns);
    
            //注册短信验证码接口的请求次数拦截器
            AccessInterceptor codeAccessInterceptor = getCodeAccessInterceptor();
            registry.addInterceptor(codeAccessInterceptor)
                    .addPathPatterns(codeAccessInterceptor.getInterceptorUrl());
    
    
            //注册手机号校验拦截器
            registry.addInterceptor(getSMSValidateInterceptor())
                    .addPathPatterns("/user/code");
    
            //用户注册参数校验 已经使用全局校验实现
    //        registry.addInterceptor(getRegisterValidateInterceptor())
    //                .addPathPatterns("/user/register");
    
        }
    
  • 相关阅读:
    Python 参数设置
    python日志模块logging
    推荐一种快速提高英语口语的方法
    Windows 远程桌面文件传输的方法
    敏捷术语
    Timeout watchdog using a standby thread
    ZFS -世界上最高级的文件系统之一
    Linux下创建和删除用户
    linux 学习之路
    Difference between a Hard Link and Soft (Symbolic) Link
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/13489601.html
Copyright © 2011-2022 走看看