В моем приложении я использую несколько обработчиков аутентификации, таких как DB приложения, LDAP и SAML. Теперь после успешной проверки подлинности я использую CustomAuthenticationSuccessHandler.java
, который расширяет класс SimpleUrlAuthenticationSuccessHandler
, который будет вызываться после успешной аутентификации. Мой вопрос заключается в том, как получить информацию о том, какой обработчик имеет успешную аутентификацию. Мне нужна эта информация, потому что если это внешний пользователь (LDAP, SAML), тогда мне нужно написать логику для репликации пользователя в БД приложения.Как получить информацию обработчика аутентификации в Spring Security
Мое в Кoнфигурировании в настройках глобальных метода:
auth
.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
auth
.ldapAuthentication()
.ldapAuthoritiesPopulator(ldapAuthoritiesPopulator)
.userDnPatterns("uid={0},ou=people")
.userDetailsContextMapper(ldapUserDetailsContextMapper)
.contextSource(getLDAPContextSource());`
Как вы знаете, что пользователь существует в БД, LDAP или SAML? Я думаю, что для обозначения пользователя должен быть тип (возможно, другой URL-адрес запроса). Вы можете установить это на «Аутентификация», когда выполняете аутентификацию. – chaoluo