Как правильно обрабатывать сбои предварительной аутентификации в Spring Security? - PullRequest
0 голосов
/ 25 марта 2019

Я реализую приложение, которое имеет различные способы входа в систему, наиболее важно через заголовок запроса для целей предварительной авторизации и обычное имя пользователя / пароль.В настоящее время все работает, но мне было предложено перенаправить пользователя на страницу с ошибкой, если он попытался использовать фильтр предварительной авторизации, и он «не удался».

Из того, что я могу сказать, если предварительная авторизациявозвращает ноль, он просто предполагает отсутствие авторизации и продолжает поток.Я ищу способ перенаправить или вызвать исключение, но я не могу ударить мой AuthenticationFailureHandler из фильтра предварительной авторизации.Есть лучший способ сделать это?Нужно ли взламывать что-то вместе, что опционально рассматривает principal как Exception.Должен ли я использовать другой механизм аутентификации?

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

Я не могу поделиться кодом из-за договорных соглашений, но вотпример:

@Override
protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
  Object principal = null;

  // Try login stuff if token exists...
  String token = request.getHeader("the-token-key");
  if (token != null && !token.empty()) {
    ...

    // If successful, correctly set principal
    principal = ...;

    // Else login failed, redirect or throw exception??
  }

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