如何在Spring Security中获取auth处理程序信息

时间:2017-01-14 07:52:39

标签: spring spring-security

在我的应用程序中,我使用多个身份验证处理程序,如应用程序数据库,LDAP和SAML。现在,在成功验证后,我使用CustomAuthenticationSuccessHandler.java扩展SimpleUrlAuthenticationSuccessHandler类,该类将在成功验证后调用。我的问题是如何获取有关哪个处理程序具有成功身份验证的信息。我需要这些信息,因为如果它是外部用户(LDAP,SAML),那么我必须编写一个逻辑来复制应用程序数据库中的用户。

我在配置全局方法中的配置:

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

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

1 个答案:

答案 0 :(得分:0)

您可以在进行身份验证时将信息设置为身份验证详细信息,或者您可以使用不同的Authentication实例,例如UsernamePasswordAuthenticationToken用于数据库和LDAP(可能需要创建新的Authentication到将它们分开),SAMLAuthenticationToken用于SAML。