registry.excludePathPatterns添加了html页面还是被拦截
时间: 2024-05-05 10:15:47 浏览: 107
可能是因为您的html页面被视为静态资源,而不是动态请求。在这种情况下,您需要使用registry.addResourceHandler添加一个资源处理程序来处理这些静态资源。例如:
```
registry.addResourceHandler("/**/*.html")
.addResourceLocations("classpath:/static/")
.setCachePeriod(3600)
.resourceChain(true)
.addResolver(new PathResourceResolver());
```
这样,所有以.html结尾的请求将被视为静态资源,并且不会被拦截。您可以将.addResourceLocations替换为您的html页面所在的目录。
相关问题
package com.de.debook.config; import com.de.debook.interceptor.AuthorityInterceptor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class ConfigRegistCanter implements WebMvcConfigurer { //注册拦截器 //addPathPatterns 用来设置拦截路径 //excludePathPatterns 用来设置白名单,也就是不需要触发这个拦截器的路径。 //addPathPatterns("/**") 表示拦截所有的请求 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new AuthorityInterceptor()) .excludePathPatterns("/user/login.html") .excludePathPatterns("/user/login") .excludePathPatterns("/user/login.out") .excludePathPatterns("/user/register.html") .excludePathPatterns("/user/register") .excludePathPatterns("/admin/register.html") .excludePathPatterns("/index.html") .excludePathPatterns("/js/**") .excludePathPatterns("/css/**") .excludePathPatterns("/images/**") .excludePathPatterns("/layui/**") .excludePathPatterns("/wangEditor/**"); } //这个方法是用来配置静态资源的,比如html,js,css等 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { } }
这是一个 Spring Boot 配置类,用于注册拦截器和配置静态资源的映射路径。具体来说,代码中的 `AuthorityInterceptor` 是自定义的拦截器类,用来实现用户权限的控制。在 `addInterceptors` 方法中,通过 `registry.addInterceptor()` 方法添加拦截器,并使用 `excludePathPatterns` 方法设置白名单,即不需要被拦截的路径。在这个例子中,白名单包括登录、注册等页面、静态资源等。在 `addResourceHandlers` 方法中,可以配置静态资源的映射路径。
@Configuration public class InterceptorConfig extends WebMvcConfigurationSupport { @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); super.addResourceHandlers(registry); } @Override protected void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(jwtInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/user/login", "/user/register", "/**/export", "/**/import", "/file/**") .excludePathPatterns("/swagger**/**", "/webjars/**", "/v3/**", "/doc.html"); super.addInterceptors(registry); } @Bean public JwtInterceptor jwtInterceptor() { return new JwtInterceptor(); } }
这是一个Java Spring Boot项目的拦截器配置类。在这个类中,我们首先重写了`addResourceHandlers()`方法来添加静态资源的处理器,这里是Swagger UI的资源,以便我们可以访问Swagger UI页面。
然后,我们重写`addInterceptors()`方法,并添加了一个自定义的JwtInterceptor拦截器。该拦截器将会拦截所有的请求(除了一些特定的排除路径),并检查请求头中是否包含了JWT Token,如果没有,则拒绝请求。这种方式可以保证只有经过认证的用户才能够访问我们的API接口。
最后,我们通过使用`@Bean`注解将JwtInterceptor类实例化为一个Bean。这样,我们就可以在其他地方通过依赖注入的方式来使用该拦截器了。
阅读全文