У меня есть два провайдера аутентификации. Один проверяет базу данных, а другой является провайдером с предварительной аутентификацией для подтверждения SAML.
Информация о пользователе и его соответствующие роли сохраняются в БД. Поэтому, когда пользователь запускает приложение с помощью SAML, мы вставляем строку в базу данных и назначаем роль по умолчанию, после чего перенаправляем пользователя на страницу регистрации, где мы собираем некоторую информацию, специфичную для пользователя.
С PreAuthenticatedProvider я ловлю UserNotFoundException, и вопрос в том, как мне перенаправить пользователя на страницу регистрации из моего метода аутентификации?
@Override
public Authentication authenticate(Authentication authentication)
throws AuthenticationException {
try {
// custom code
} catch (UsernameNotFoundException e) {
// Redirect user to a view
}
}
Есть ли лучший способ обработки таких случаев?
РЕДАКТИРОВАТЬ: Я заинтересован в обработке исключений аутентификации, поступающих от провайдеров аутентификации, особенно PreAuthenticationProviders.