java 连接 ldap 报错 100

这个项目要求验证域用户,我就是用连接ldap来验证,但是总是报错LDAP:errorcode49-80090308:DSID-0C0903AA,comment:Accep... 这个项目要求验证域用户,我就是用连接ldap来验证,但是总是报错
LDAP:error code 49 - 80090308: DSID - 0C0903AA,comment: AcceptSecuritycontext error ,data 525,v1772
我的代码如下:
String BASEDN = "dc=combatelecom,dc=com";
Hashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");env.put(Context.PROVIDER_URL,"ldap://10.10.0.13:389/"+BASEDN);env.put(Context.SECURITY_AUTHENTICATION,"simple");env.put(Context.SECURITY_PRINCIPAL,"cn=" + username);//1env.put(Context.SECURITY_CREDENTIALS,password);//2DirContext ctx = new InitialDirContext(env);如果屏蔽1和2两行就能连接成功,但是一带上我自己的账号和密码就报错求大神解救我啊!!!!!!!!!!!!
展开
 我来答
百度网友815ea2176
2013-08-15 · 超过11用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:29.4万
展开全部
应该是用户名写的不对,env.put(Context.SECURITY_PRINCIPAL,"cn=" + username);
这里面应该写用户的全路径名,比如cn=xxxxx,dc=combatelecom,dc=com
说白了就是你怎么从根节点找到的用户,把用户节点的dn拷贝出来就行了
另外那个URL部分写成env.put(Context.PROVIDER_URL,"ldap://10.10.0.13:389")
追问
这些都试过
不行的
让服务成就美好生活
2013-08-15 · 让服务成就美好生活!
让服务成就美好生活
采纳数:1497 获赞数:2381

向TA提问 私信TA
展开全部
个人意见,不一定正确,互相研究一下。
感谢这一行写的不对
env.put(Context.PROVIDER_URL,"ldap://10.10.0.13:389/"+BASEDN)

应该env.put(Context.PROVIDER_URL,"ldap://10.10.0.13:389/")
至于BASEDN写到哪里暂不是很清楚,但觉得不应该跟URL写在一起。
追问
不行的,带不带BASEDN都不行,匿名创建InitialDirContext(env)是可以的
一旦戴上账号和密码就报账号或密码错误
不知道是否是账号或密码要经过处理才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-14
展开全部
那就是用户的dn写得不正确,或用户名、密码写得不对。

根据你的实际环境,写正确的就好了
更多追问追答
追问
DN在匿名登录时是成功的
用户名和密码保证是正确的
是不是其他问题?
追答
username 怎么写的,有BASEDN吗,如果没有添加试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式