У меня есть пост-конечная точка в моем контроллере отдыха, которая доступна без аутентификации / авторизации.он настраивается в WebSecurityConfigurerAdapter следующим образом:
@Override
public void configure(WebSecurity web) {
web.ignoring().antMatchers("/api/v1/user");
}
Конечная точка имеет проверку входных данных (предоставляется аннотацией javax.validation.Valid).Когда я отправляю неверные данные, я получаю ответ 401 вместо 400. Эта проблема не существует в защищенных конечных точках, где отправляется сообщение 400 весенней загрузки по умолчанию.
Во время отладки я обнаружил, что во время обработки MethodArgumentNotValidException (которое выдается, когда в контроллере возникает ошибка проверки), WebExpressionVoter выполняется и возвращает значение -1, что означает «доступ запрещен».Как я могу настроить свое приложение на игнорирование проверок безопасности для конечных точек, которые являются общедоступными?
Я знаю, что использование ControllerAdvice для обработки исключений является одним из вариантов, но возможно ли иметь 400 сообщений по умолчанию?
Заранее благодарим за любые подсказки!
РЕДАКТИРОВАТЬ:
Security filter chain: [
WebAsyncManagerIntegrationFilter
SecurityContextPersistenceFilter
HeaderWriterFilter
LogoutFilter
OAuth2AuthenticationProcessingFilter
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
AnonymousAuthenticationFilter
SessionManagementFilter
ExceptionTranslationFilter
FilterSecurityInterceptor
]