Spring Security DisabledException не получено AuthenticationEntryPoint - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь заставить Spring Security возвращать ответ 401 с настроенным сообщением, когда учетная запись пользователя отключена.

Я получаю DisabledException, как я хочу от попытки аутентификации, но я не могу передать это DisabledException на AuthenticationEntryPoint, который отправляет мои ошибки HTTP REST.

А также, почему AuthenticationException в AuthErrorHandler не совпадает с JwtAuthenticationFilter?

class JwtAuthenticationFilter(authManager: AuthenticationManager) : UsernamePasswordAuthenticationFilter() {
    [...]
    override fun unsuccessfulAuthentication(request: HttpServletRequest, response: HttpServletResponse, failed: AuthenticationException) {
        if (failed is DisabledException) {
            // The HTTP status goes through successfully, but not the message
            response.sendError(480, "I'm not received on the other end.")
        } else {
            super.unsuccessfulAuthentication(request, response, failed)
        }
    }
}
class AuthErrorHandler : AuthenticationEntryPoint {
    @Throws(IOException::class, ServletException::class)
    override fun commence(request: HttpServletRequest, response: HttpServletResponse, authException: AuthenticationException) {
        if (response.status != 480) {
            response.sendError(HttpServletResponse.SC_UNAUTHORIZED, authException.message)
        }
        // Else we've already sent the proper error
    }
}

Есть ли способ отправить полезное сообщение или более правильный способ сделать это?

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