Как получить информацию о обработчике auth в Spring Security

В моем приложении я использую несколько обработчиков аутентификации, таких как application DB, LDAP и SAML. Теперь после успешной аутентификации я использую CustomAuthenticationSuccessHandler.javaкоторый расширяет SimpleUrlAuthenticationSuccessHandlerкласс, который будет вызываться после успешной аутентификации. Мой вопрос заключается в том, как получить информацию о том, какой обработчик имеет успешную аутентификацию. Мне нужна эта информация, потому что если это внешний пользователь (LDAP, SAML), то я должен написать логику для репликации пользователя в БД приложений.

Моя конфигурация в configure global method:

        auth
            .userDetailsService(userDetailsService)
            .passwordEncoder(passwordEncoder());

        auth
            .ldapAuthentication()
            .ldapAuthoritiesPopulator(ldapAuthoritiesPopulator)
            .userDnPatterns("uid={0},ou=people")
            .userDetailsContextMapper(ldapUserDetailsContextMapper)
            .contextSource(getLDAPContextSource());`

1 ответ

  1. При проверке подлинности можно задать сведения о проверке подлинности или использовать различные Authenticationэкземпляры, например.g UsernamePasswordAuthenticationTokenдля DB и LDAP (возможно, нужно создать новыйAuthentication, чтобы разделить их), SAMLAuthenticationTokenдля SAML.