首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LDAP -无法启用使用spring java ldap api的用户

LDAP -无法启用使用spring java ldap api的用户
EN

Stack Overflow用户
提问于 2019-03-23 06:27:37
回答 2查看 1.7K关注 0票数 0

尝试启用用户帐户并出现以下错误。如果我在创建用户(使用java api)和更新密码(在windows机器上手动使用UI )后直接转到windows计算机,如"password1“,然后尝试使用java启用密码,则可以正常工作。

下面是我在创建用户时如何设置密码

代码语言:javascript
复制
BasicAttribute basicAttribute1=new BasicAttribute("userPassword","password1".getBytes(StandardCharsets.US_ASCII));
            context.setAttribute(basicAttribute1);

然后尝试将用户帐户控制更改为512,并获得

代码语言:javascript
复制
 "errorMessage": "[LDAP: error code 53 - 0000052D: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM), data 0\n\u0000]; nested exception is javax.naming.OperationNotSupportedException: [LDAP: error code 53 - 0000052D: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM), data 0\n\u0000]; remaining name 'CN=SachinVTendulkar,OU=SDCWASD001,OU=Users,OU=Mycity,OU=Enterprise Support'"

在使用java创建用户时,我似乎没有正确设置密码-我使用userAccountControl-514和密码以及其他属性创建用户(首先我想在禁用模式下创建)

然后,当我尝试启用用户时,就会遇到这个问题。对于同一个用户,如果我在windows机器上更新密码,然后尝试用java启用它,它工作得很好-所以这排除了其他问题,比如ldaps等。

创建用户时的日志以供参考:

创建用户日志:创建新用户: JohnSmith,in DN : CN=JohnSmith,OU=SDCWASD001,OU=Users,OU=MyCity,OU=Enterprise Support,上下文: org.springf.ldap.core.DirContextAdapter: dn=CN=JohnSmith,OU=SDCWASD001,OU=Users,OU=MyCity,OU=Enterprise Support {mail=adsadsa51@test.com,Description=Test account,CN=JohnSmith,objectclass=top,objectclass1=Person,objectclass2=organizationalPerson,objectclass3=user,}

然后为了启用用户,我执行以下操作并获取该错误(我在单独的调用中执行此操作)

代码语言:javascript
复制
ModificationItem[] mods=new ModificationItem[1];
         mods[0]=new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("userAccountControl",Integer.toString(512)));
 ldapTemplate.modifyAttributes(dn, mods);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-08 22:58:47

解决方案是使用SSL进行密码属性更新。

你能更具体地说明这需要什么吗?

票数 0
EN

Stack Overflow用户

发布于 2019-03-26 05:09:44

尝试设置unicodePwd value on the account。类似于:

代码语言:javascript
复制
final byte[] quotedPasswordBytes = ('"'+password+'"').getBytes("UTF-16LE");
    container.put(new BasicAttribute("unicodePwd", quotedPasswordBytes));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55308575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档