gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:18 25 4
gpt4 key购买 nike

我正在尝试从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com