Как Spring Security BadCredentialsException сопоставляется с кодом HTTP 401

Когда я бросаю org.springframework.security.authentication.BadCredentialsException исключение, в клиенте будет отображаться 401 как показано ниже,

{
  "timestamp": "2016-03-29T09:07:50.866+0000",
  "status": 401,
  "error": "Unauthorized",
  "message": "Some message",
  "path": "/test/service1/getAll"
}

Я хочу знать, где и как BadCredentialsException сопоставлены с HTTP 401 Код статуса?

1 ответ

Решение

Это ExceptionTranslationFilter это обрабатывает исключения, выданные перехватчиками безопасности и обеспечивает подходящие ответы HTTP:

ExceptionTranslationFilter сидит над FilterSecurityInterceptor в стеке фильтров безопасности. Он не выполняет никаких действий по обеспечению безопасности, но обрабатывает исключения, создаваемые перехватчиками безопасности, и предоставляет подходящие и HTTP-ответы.

Проверьте документацию Spring Security для получения дополнительной информации здесь и здесь.

Другие вопросы по тегам