Я создал пользовательский поток аутентификации для аутентификации с использованием внешнего поставщика.Насколько я понимаю, вот поток выполнения.
CustomAuthenticationHandler
(расширение DefaultAuthenticationFeedbackHandler
и внедрение AuthenticationHandler
, AuthenticationFeedbackHandler
): это извлекает учетные данные и вызывает соответствующий модуль входа в системуиспользуя конфигурацию JAAS. - CustomLoginModule (расширение
AbstractLoginModule
).Это вызывает провайдера идентификации, опционально назначает дополнительные группы. - CustomIdentityProvider (реализация
ExternalIdentityProvider
): Здесь аутентификация должна выполняться путем вызова API аутентификации моего внешнего провайдера.
Аутентификация работает нормально, я имею в виду
1> 2> 3 работает нормально, и я могу вызывать API и аутентифицировать пользователя.
Я получаю информацию о пользователе из API в (3), и я передаю его (2) через CustomUser (с расширением ExtenalUser
).
Моя проблема в том, что я не могу передать информацию пользователя из (2) в (1).Мне нужна эта информация для дальнейшей обработки запроса, чтобы отобразить в интерфейсе пользователя.
Как я могу передать эти данные из (2) в (1)?
Что я пробовал до сих пор?
Я создал объект AuthInfo и вызвал объект setInfoInfo класса LoginModule.Это не работает.Ни один из пользовательских параметров, заданных мной в authInfo, не доступен в
public boolean authenticationSucceeded(HttpServletRequest request,
HttpServletResponse response, AuthenticationInfo authInfo)
, который я переписал в классе CustomAuthenticationHandler
.Как я могу получить свои пользовательские параметры в CustomAuthenticationHandler
?