Spring集成LDAP连接报错(错误码49),请求配置排查帮助
LDAP错误码49(data52e)排查方案
首先明确错误含义:LDAP错误码49搭配data 52e,对应Active Directory的用户名或密码无效认证失败。你确认密码正确,问题大概率出在用户名的配置格式上,以下是具体排查和修正步骤:
1. 修正用户名配置格式
你当前的spring.ldap.username只写了CN=Intranet company,这不是完整的绑定用户标识,AD接受两种绑定格式:
- 完整DN(区分名):需要把用户所在的OU和域名后缀补上,比如:
spring.ldap.username=CN=Intranet company,OU=Account,DC=company,DC=lan - UPN格式(如果AD为该用户配置了用户主体名称):直接用
用户名@域名,比如:spring.ldap.username=Intranet@company.lan
2. 验证Base配置合理性
你的spring.ldap.base已经设置为OU=Account,DC=company,DC=lan,后续搜索时无需重复写完整路径,可以简化搜索代码的第一个参数:
System.out.println( ldapTemplate.search( "", // 使用base作为根路径,留空即可 "cn=" + account.username , (AttributesMapper<String>) attrs -> (String) attrs.get("sAMAccountName").get()));
3. 优化搜索过滤器
AD中通常用sAMAccountName作为用户登录标识,建议用参数化方式编写过滤器,避免字符串拼接问题:
ldapTemplate.search( "", "sAMAccountName={0}", new Object[]{account.username}, (AttributesMapper<String>) attrs -> (String) attrs.get("sAMAccountName").get() );
完成以上配置修正后,重新测试LDAP连接与搜索即可。
内容的提问来源于stack exchange,提问作者Ultiorra
相关产品推荐
相关产品推荐

