handi3 2020-01-15 01:01 采纳率: 100%
浏览 651
已采纳

springboot2拦截器返回false后静态资源无法访问

  1. springboot2拦截器返回false以后无法加载静态资源

    项目结构

    图片说明

拦截器代码

@Override
public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response, Object handler) throws Exception {

        User user = (User)request.getSession().getAttribute(GlobalConst.USER_SESSION_KEY);
        logger.info(request.getRequestURI().toString());
        if (user == null)  {
            response.sendRedirect("/login");
            logger.info("请先登录");
            return false;
        } else {
            // 验证权限
            String role = user.getRole();
            if (!this.hasPermission(handler, role)) {
                response.sendError(HttpStatus.FORBIDDEN.value(), "无权限");
                return false;
            }
        }
        return true;
    }

2.自定义的WebConfigurer

@Configuration
public class WebConfigurer implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")
                .excludePathPatterns("/")
                .excludePathPatterns("/login",  "/tologin")
                .excludePathPatterns("/recharge/notify").excludePathPatterns("/recharge/rechargeok")
                .excludePathPatterns("/verify/getcode");
    }
}

3.application.properties

# 静态文件请求匹配方式
spring.mvc.static-path-pattern=/**
# 修改默认的静态寻址资源目录
spring.resources.static-locations=classpath:/static/

未登录时preHandle返回false,静态资源无法加载。
登录后可以加载静态资源;或者把response.sendRedirect("/login");注释掉再把return改为true也可以加载静态资源

遇到这问题很郁闷,找了半天也没找到啥原因

  • 写回答

2条回答 默认 最新

  • Amo_lt 2020-01-15 09:36
    关注

    你的静态资源放到哪里?static下面吗?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)