Остановите перенаправление на вход в систему для указанной папки ресурсов c, но в противном случае разрешите поведение по умолчанию - PullRequest
0 голосов
/ 23 марта 2020

Я установил папку ресурсов вне classpath, которая не требует аутентификации для доступа к файлам для загрузки. Это прекрасно работает, за исключением случаев, когда ресурсы отсутствуют. Вместо того, чтобы возвращать сообщение об ошибке, на которое я могу отреагировать, я получаю страницу входа.

Я установил обработчик ресурса следующим образом:

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").
                addResourceLocations("/", "/resources/", "file:/updater/");
    }

В реализации WebSecurityConfigurerAdapter, которую я имею,

    @Override
    public void configure(final WebSecurity web) {
        web.ignoring().antMatchers("/resources/**");
    }

и

    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .authorizeRequests()
                .antMatchers("/resources/**")
                .permitAll()
[snip]

упрощены для этого примера.

У меня есть реализация ResponseEntityExceptionHandler, которая также имеет исключение перехвата всех

@ExceptionHandler({ Exception.class })

а также другие пользовательские исключения, но это никогда не генерируется.

Я не использую контроллер для загрузки, я использую класс java URLConnection и хочу вернуть код ошибки, если есть проблема. Например, когда я удаляю файлы, и кто-то просто пытается загрузить из этой папки, и она пуста.

Так как это перенаправление происходит, я получаю 200, как и следовало ожидать, так как страница входа действительно загружается.

Я прочитал все темы, которые я могу найти по поводу остановки перенаправлений, но это не для меня.

Как разрешить поведение перенаправления по умолчанию для входа в систему для всего, кроме "этой указанной c папки" Updater ", которая находится за пределами пути к классам.

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