2017-01-14 3 views
0

В моем приложении я использую несколько обработчиков аутентификации, таких как 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());` 
+0

Как вы знаете, что пользователь существует в БД, LDAP или SAML? Я думаю, что для обозначения пользователя должен быть тип (возможно, другой URL-адрес запроса). Вы можете установить это на «Аутентификация», когда выполняете аутентификацию. – chaoluo

ответ

0

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

+0

Да, вы можете, пожалуйста, напишите больше информации о вашей конфигурации безопасности? Конфигурация http-конфигурации – chaoluo

Смежные вопросы