Использование Spring Boot WebMvcConfigurer отключает обработку ошибок и нормализацию пути - PullRequest
0 голосов
/ 23 января 2020

Я следовал довольно стандартной установке, чтобы переопределить обработку ресурсов по умолчанию в Spring Boot, найденную как здесь, так и на других сайтах. Нам нужно переопределить обработку ресурсов по умолчанию, потому что если у нас есть «универсальный» путь (/**) в одном из наших веб-контроллеров, они имеют приоритет над обработчиком ресурсов и никакие stati c файлы не возвращаются нашим приложением .

К файлу конфигурации я добавил:

spring:
  resources:
    add-mappings: false

И мой класс выглядит так (в Kotlin):

@Configuration
@EnableWebMvc
@ConditionalOnProperty(
        value = ["spring.resources.add-mappings"],
        havingValue = "false",
        matchIfMissing = false
)
open class MvcStaticConfiguration : WebMvcConfigurer {
    override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE)
                .addResourceHandler("/static/**")
                .addResourceLocations("classpath:/public/static/")
    }
}

Spring Boot нормализует все запросы, поступающие в приложение. Например, /path/to/my/../app до /path/to/my/app. Это также верно для stati c файлов (/static/path/../here до /static/path/here).

Однако, когда мы отключили обработку ресурсов по умолчанию, нормализация пути для запросов ресурсов больше не работает. Кроме того, похоже, что некоторая обработка ошибок перестала работать, поскольку в ответе об ошибке просочилась полная трассировка стека.

Есть ли способ вернуть все это обратно? Единственное, что нам нужно , - это чтобы ресурсы имели наивысший приоритет, а в идеале все остальное было точно таким же, каким оно было.

Я просмотрел соответствующий исходный код и попытался повторить код, но мне не повезло. Если это сложно или невозможно, есть ли другой способ достичь того, чего мы хотим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...