今天发现一个诡异的问题,在排除路径中写名了 /test/abc,但是用postman访问时发现返回的是登录页面,通过debug发现请求变成了/error。
排除方法如下:
public class MyMvcConfigurer implements WebMvcConfigurer {
@Autowired
private LoginInterceptor loginInterceptor;
@Value("${allow.urls}")
private String allowUrls;
/**
* WEB contextPath
*/
@Value("${server.servlet.context-path:}")
private String contextPath;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginInterceptor)
.addPathPatterns("/**")
.excludePathPatterns(Arrays.asList(allowUrls.split(",")));
}
}
于是马上验证排除路径是否生效,通过验证排除路径是正确的;
然后检查方法的参数是否传递错误,于是将方法参数去掉后,重新发起请求,也是一样的问题;
最后实在没招了,无意中在请求方法打上断点,发现请求的时候居然能进方法中,果断判断是该方法出了问题引起,通过比较发现是请求的方法掉了一个注解