Spring Boot Interceptor excludePathPatterns不起作用

时间:2019-07-08 07:57:28

标签: spring-boot kotlin

我正在使用Kotlin + Spring-boot 2构建示例API 我想为自定义拦截器排除一些路径。但它不起作用。我试图从其他问题中寻求帮助,但是他们两个都没有奏效。 我不想添加XML配置。我想使用Java配置。

我尝试了所有可能的组合以使拦截器正常工作,但拦截器并未排除配置中定义的路径。 我正尝试致电的网址 http://localhost:8080/v1/greet/gajendra http://localhost:8080/swagger-ui.html

@Configuration
class ApigwConfig : WebMvcConfigurer {
    private val LOGGER : Logger = LoggerFactory.getLogger(ApigwConfig::class.java)

    private var EXCLUDE_PATTERN = mutableListOf("**/login",                                      
                                                     "**/health",                    
                                                    "**/greet/**",           
                                                    "/error/**",                                         
                                                    "/v2/api-docs", 
                                                    "/configuration/ui", 
                                                    "/swagger-resources/**",
                                                    "/configuration/**",
                                        "/swagger-ui.html",
                                        "/webjars/**")

    @Autowired
    lateinit var sessionCheckInterceptor: SessionCheckInterceptor

    override fun addInterceptors(registry: InterceptorRegistry ) {
        LOGGER.info("Initialize SessionCheckInterceptor interceptor")
        registry.addInterceptor(sessionCheckInterceptor)
                .addPathPatterns("/**")
                .excludePathPatterns(EXCLUDE_PATTERN)
    }
}

对“ / v1 / greet / gajendra”的请求应该绕过sessionCheckInterceptor,但是Interceptor不能绕开。

0 个答案:

没有答案