DevGang
Авторизоваться

Один из самых важных Spring Security Matchers

Это должен быть самый важный матчер Spring Security.

Любая ошибка, возникающая в приложении, которая не обрабатывается, перенаправляет пользователя на URL-адрес /error.

Для этого я провел симуляцию и проанализировал трассировку стека.
Давайте взглянем?

Здесь я смоделировал ошибку добавления значений с повторяющимися индексами. Если эта ошибка не обрабатывается должным образом, сервер возвращает ошибку 500, однако, поскольку мы используем Spring, эта ошибка обрабатывается самим контейнером.

В этом случае ошибка обрабатывается с использованием /error в качестве местоположения. Однако, поскольку мы также используем Spring Security, фреймворк будет передавать запрос через SecurityFilterChain, который требует, чтобы он был указан в матчерах.

Если я не укажу своему приложению разрешать запросы для /error, то Spring Security выдаст исключение AccessDeniedException. Это AccessDeniedException будет поймано ExceptionTranslationFilter, который вернет мне ошибку 401 вместо 500.

Почему тогда важно, чтобы я разрешал запросы к /error? Чтобы не возвращать неправильные ошибки из моего API, особенно когда я в dev, тестирую приложение.
Другим обходным путем может быть отключение обработки ошибок, однако он отключает обработку ошибок Spring Security.

Лично я предпочитаю разрешать любые запросы к /error, но эта конечная точка ведет себя довольно любопытно.

Но это для другой темы!

  Исходное пост по адресу: https://twitter.com/masoxi22/status/1681136803112181760

Источник:

#Security #Java #Spring
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться