当前位置: 首页 > 知识库问答 >
问题:

MVC Java配置-HandlerInterceptor不排除路径

邹玄裳
2023-03-14

我有一个MVC Java配置,但handlerinterceptor并不排除某些模式。

在标有xxx的行处,如果

感谢你的指点。

谢谢

@Configuration
public class MyMVCConfigurerAdapter extends WebMvcConfigurerAdapter {

 @Override
 public void addInterceptors(final InterceptorRegistry registry) {

     registry.addInterceptor(getInterceptorOne());

     registry.addInterceptor(getMyHandlerInterceptor())
                 .excludePathPatterns("*.ecxld");  // **xxx**

     registry.addInterceptor(getInterceptorTwo()
     );

 }

共有1个答案

萧焱
2023-03-14

您为include和exclude指定的模式是基于ant的路径表达式,而不是像您在web.xml中所表示的那样映射servlet或过滤器。

要使exclude起作用,还必须包含include路径(正如您在第二条注释中已经注意到的)。接下来,将排除模式更改为/**/*.ecxld

当前表达式*.ecxld将与file.ecxld匹配,但它将与/file.ecxld/foo/file.ecxld不匹配。/**/部分负责解决这一问题。但是,要使其工作,它还需要IncludePathExpression(代码检查是否存在IncludePathExpression,如果不存在,则忽略ExcludePathExpression)。

因此,简而言之,将您的配置修改为以下内容应该可以解决您的问题。

@Configuration
public class MyMVCConfigurerAdapter extends WebMvcConfigurerAdapter {

 @Override
 public void addInterceptors(final InterceptorRegistry registry) {

     registry.addInterceptor(getInterceptorOne());

     registry.addInterceptor(getMyHandlerInterceptor())
                 .includePathPatterns("/**")
                 .excludePathPatterns("/**/*.ecxld");  

     registry.addInterceptor(getInterceptorTwo()
     );

 }
 类似资料:
  • 我只想排除中的一些jar 我的配置是(根据https://maven.apache.org/plugins/maven-dependency-plugin/list-mojo.html) : 然后我就跑 但依赖项仍然出现在文件中。

  • 我正在使用最新的spring boot版本,我正在尝试设置一个应用程序,但我想禁用数据源配置。我的配置类如下所示: 但当我运行应用程序时,我会得到以下堆栈跟踪: 我的配置中是否缺少任何东西来完全禁用数据源配置?我将手动设置数据源,所以我不希望Spring为我处理这个问题。

  • 我在maven项目中有以下设置。生产性代码的配置类: 然后我有一个测试,它有一个内部: 这门课的测验做得很好。那么我在子包中确实有另一个测试类: 如何避免其他测试中的配置类“泄露”到其他测试中? 我在Spring Boot 1.4.1中看到了使用Spring profiles的集成测试的Spring-boot默认配置文件,而我使用的是Spring Boot 2.0.1。但我相信这是可以做到的。 我

  • 在另一个用@ControllerAdvice注释的类中,我有一个ExceptionHandler,它捕获IllegalArgumentException并将其转换为HTTP状态码为400的格式化响应。 当通过触发API的有效路径来执行此操作时,一切正常。当我尝试调用API的无效/不存在路径时,会出现问题。调用HandlerInterceptor并引发异常,但未触发我的ExceptionHandle

  • 我有一个Java MultiMaven项目,我为每个子模块配置了Jacoco maven插件,以排除我不想要覆盖报告的文件。我认为我成功了,因为我在Jacoco生成的html报告中看不到我排除的这些文件。我假设这些类文件被排除在Jacoco.exec文件之外。现在,我在SonarQube中使用这些累积的Jacoco.exec文件,并看到了所有子模块的覆盖,但是,当我进入类详细信息时,我再次看到了我

  • 本文向大家介绍浅谈SpringMVC HandlerInterceptor诡异问题排查,包括了浅谈SpringMVC HandlerInterceptor诡异问题排查的使用技巧和注意事项,需要的朋友参考一下 发现问题 最近在进行压测发现,有一些接口时好时坏,通过sentry日志平台及sky walking平台跟踪发现,用户张三获取到的用户上下文确是李四。 代码走读 用户登录下上文 在拦截器中有调用