Spring Interceptor不会拦截来自静态资源的传入HTTP请求

时间:2019-04-24 06:51:48

标签: java spring

所以我正在从事Spring项目。我已经编译了角度项目,并通过将其处理到web-inf / static文件夹中来添加到spring中,并在Spring中使用ResourceHandlerRegistry注册了它。我在拦截器HTTP请求中添加了一个拦截器,但是当我部署应用程序时,静态资源停止工作,因为我得知拦截器正在阻止它们。因此,我使用excludePathPatterns解除了对静态内容的阻止,并且它起作用了,但是拦截器停止了拦截HTTP请求。我正在使用Spring 5和Wildfly10。该怎么办?

我尝试将addPathPatterns添加到拦截器中,因为我知道我的所有请求都将带有/ api / **,但没有用。

    @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**").addResourceLocations("/static/");
            registry.addResourceHandler("/assets/**").addResourceLocations("/static/assets/");
        }


    @Bean
    SessionManagementInterceptor httpApiRequestInterceptor() {
         return new SessionManagementInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
       // registry.addInterceptor(httpApiRequestInterceptor()).excludePathPatterns("/static/**","/assets/**");
        registry.addInterceptor(httpApiRequestInterceptor()).addPathPatterns("/api/**")
        .excludePathPatterns( new String[] {"/static/**","/assets/**"});
    }

我希望它能拦截以/ api / **开头的所有请求,并排除静态资源。它排除了资源,但没有拦截api请求

0 个答案:

没有答案