拦截所有路径是/**还是/*
时间: 2023-07-08 19:38:15 浏览: 67
拦截所有路径应该使用`/**`,而不是`/*`。这是因为`/**`能够匹配所有路径,包括多级路径,而`/*`只能匹配一级路径。例如,如果您的拦截器配置为:
```
registry.addInterceptor(accessInterceptor).addPathPatterns("/*");
```
那么,只有一级路径的请求才会被该拦截器拦截,例如:
- /api
- /user
- /home
而如果您的拦截器配置为:
```
registry.addInterceptor(accessInterceptor).addPathPatterns("/**");
```
那么,所有路径都会被该拦截器拦截,包括多级路径,例如:
- /api/user
- /user/login
- /home/index
因此,如果您想要拦截所有请求,应该使用`/**`,而不是`/*`。
相关问题
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` 方法中,可以配置静态资源的映射路径。
public void addInterceptors(InterceptorRegistry registry) { //定义集合,设置不拦截的路径 List<String> list = (List<String>) Arrays.asList("/employee/login", "/employee/logout", "/backend/**", "/front/**", "/user/sendMsg","/user/login","/user/loginout"); registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns(list); }这段代码有什么用
这段代码是在Spring MVC框架中配置拦截器的方法。它的作用是添加一个拦截器到拦截器的注册表中,然后通过定义一个集合,设置不需要被拦截的路径。在这个例子中,拦截器是LoginInterceptor,它会在所有的请求前执行,并且拦截所有的路径(/**),但是排除了列表中的路径(list)。
这个拦截器可以用来实现用户登录认证、权限控制等功能。通过拦截所有请求,如果用户没有登录或者没有权限,就可以将其重定向到登录页面或者返回错误信息。而通过排除一些路径,比如登录页面、退出登录页面、静态资源等,可以避免拦截这些页面,保证应用的正常运行。
阅读全文