尝试启用用户帐户并出现以下错误。如果我在创建用户(使用java api)和更新密码(在windows机器上手动使用UI )后直接转到windows计算机,如"password1“,然后尝试使用java启用密码,则可以正常工作。
下面是我在创建用户时如何设置密码
BasicAttribute basicAttribute1=new BasicAttribute("userPassword","password1".getBytes(StandardCharsets.US_ASCII));
context.setAttribute(basicAttribute1);然后尝试将用户帐户控制更改为512,并获得
"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,}
然后为了启用用户,我执行以下操作并获取该错误(我在单独的调用中执行此操作)
ModificationItem[] mods=new ModificationItem[1];
mods[0]=new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("userAccountControl",Integer.toString(512)));
ldapTemplate.modifyAttributes(dn, mods);发布于 2019-04-08 22:58:47
解决方案是使用SSL进行密码属性更新。
你能更具体地说明这需要什么吗?
发布于 2019-03-26 05:09:44
尝试设置unicodePwd value on the account。类似于:
final byte[] quotedPasswordBytes = ('"'+password+'"').getBytes("UTF-16LE");
container.put(new BasicAttribute("unicodePwd", quotedPasswordBytes));https://stackoverflow.com/questions/55308575
复制相似问题