java - 使用 Spring LDAP 在 Java 中进行身份验证

标签 java spring-security ldap spring-boot

我正在尝试从 Spring LDAP 项目连接到 AD

我没有从 DefaultSpringSecurityContextSource 中找到任何方法来设置 CN 以进行身份​​验证。

public void init(AuthenticationManagerBuilder auth) throws Exception {
        DefaultSpringSecurityContextSource context = new DefaultSpringSecurityContextSource("ldaps://test.ldaps.com/DC=test,DC=ldaps,DC=com");
        context.setPassword("password");
        context.afterPropertiesSet();
        auth
                .ldapAuthentication()
                .userSearchFilter("(|(objectClass=person)(objectClass=user))")
                .userDnPatterns("uid={0},OU=people)")
                .contextSource(context);
}

我没有找到像contect.setUserCN()这样的方法。

最佳答案

应该不需要设置 CN。您只需在上下文中指定 managerDN 和 managerPass,如下所示。然后,安全 Ldap 将使用上下文来查找与当时条件匹配的用户,检索其 DN,然后尝试使用检索到的 DN 和给定的通行证发出绑定(bind)。

这是我们的配置,运行良好:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private SecurityConfigProperties conf;

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder authBuilder) throws Exception {
        authBuilder
            .ldapAuthentication()
            .userSearchFilter("(sAMAccountName={0})")
            .userSearchBase("dc=XXXX,dc=XXXXXX,dc=XXX")
            .groupSearchBase("ou=XXXXXXX,dc=XXXX,dc=XXXXXX,dc=XXX")
            .groupSearchFilter("member={0}")
            .contextSource()
                .url(conf.getLdapUrl())
                .port(conf.getLdapPort())
                .managerDn(conf.getBindCn()) 
                .managerPassword(conf.getBindPass());
    }

}

但是按照您的代码示例 context.setUserDN() 应该就是您要查找的内容。

关于java - 使用 Spring LDAP 在 Java 中进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31872297/

相关文章:

java - SQLite update() 不起作用,logcat 中没有错误。我如何诊断问题?

java - Spring Security HeaderPreAuthentication Principal 未从 @AuthenticationPrincipal 解析

spring security 无法找到 XML 模式命名空间的 espaceHandler

spring - LDAP认证

sharepoint - 将 SharePoint 与多个 Active Directory 一起使用

java - 将 Android Studio 更新到 v2.3 后我无法加载任何项目

java - 清除日志文件后 Logback 停止记录

java - JSF Activity 目录身份验证

java - 创建 ArrayList 时应为 '(' 或 '['

spring-mvc - 成功登录后,spring security 不会重定向