Я использую Spring Security с OAuth 2. У моих пользователей OAuth есть поля account_locked
и enabled
, и я использую их по разным причинам.Например, account_locked
для блокировки пользователей и enabled
для деактивации пользователей.Когда пользователь пытается войти в систему и имеет блокировку, он получает 401
HTTP-код и сообщение «Учетная запись пользователя заблокирована».Если он деактивирован, он также получает 401
HTTP-код и сообщение «Пользователь отключен».
Я хочу дополнить эти ошибки дополнительной информацией (например, можно улучшить токен с помощью TokenEnhancer
), чтобы отличить код блока от деактивированного кода на клиенте.Например, с полем reason_of_fail
.Обратите внимание, что я не хочу использовать текстовые сообщения об этих ошибках.
Я уже пытался использовать это (с этот ответ ):
@Override
protected void configure(HttpSecurity http) throws Exception {
http.exceptionHandling()
.authencationEntryPoint(unauthorizedHandler)
.accessDeniedHandler(accessDeniedHandler);
}
Ноэти обработчики не ловят LockedException
и DisabledException
.
Итак, как я могу улучшить эти ошибки с помощью дополнительного поля (пара ключ-значение)?