Я реализую приложение, которое имеет различные способы входа в систему, наиболее важно через заголовок запроса для целей предварительной авторизации и обычное имя пользователя / пароль.В настоящее время все работает, но мне было предложено перенаправить пользователя на страницу с ошибкой, если он попытался использовать фильтр предварительной авторизации, и он «не удался».
Из того, что я могу сказать, если предварительная авторизациявозвращает ноль, он просто предполагает отсутствие авторизации и продолжает поток.Я ищу способ перенаправить или вызвать исключение, но я не могу ударить мой 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;
}