java – 尝试通过LDAP启用用户时出现WILL_NOT_PERFORM错误
发布时间:2020-12-15 02:31:47 所属栏目:Java 来源:网络整理
导读:我正在尝试通过ldap创建新的Active Directory用户,但用户在创建时被禁用.我试图将userAccountControl属性设置为512,但我收到错误WILL_NOT_PERFORM.我读过这是因为密码没有设置,但我不明白为什么.使用userPassword属性设置创建用户工作正常. 这是代码: // Cr
我正在尝试通过ldap创建新的Active Directory用户,但用户在创建时被禁用.我试图将userAccountControl属性设置为512,但我收到错误WILL_NOT_PERFORM.我读过这是因为密码没有设置,但我不明白为什么.使用userPassword属性设置创建用户工作正常.
这是代码: // Create a container set of attributes Attributes container = new BasicAttributes(); // Assign the properties we need to set on the user container.put(new BasicAttribute("objectClass","user")); container.put(new BasicAttribute("cn",userName)); container.put(new BasicAttribute("sAMAccountName",userName)); container.put(new BasicAttribute("name",userName)); container.put(new BasicAttribute("givenName",userName)); container.put(new BasicAttribute("userPassword",password)); String fullDomainName = getFullUserName(userName); // Create the entry try{ context.createSubcontext(fullDomainName,container); }catch(Exception e){ System.err.println("Error creating user: " ); e.printStackTrace(); throw e; } ModificationItem[] userMods = new ModificationItem[1]; userMods[0] = new ModificationItem(InitialLdapContext.REPLACE_ATTRIBUTE,new BasicAttribute("userAccountControl","512")); try{ context.modifyAttributes(fullDomainName,userMods); }catch(Exception e){ System.err.println("Could not update userAccountControl flag"); e.printStackTrace(); throw e; } 我创建用户的第一部分工作,我试图设置userAccountControl标志的第二部分失败.任何帮助将不胜感激.谢谢! 解决方法
我发现了问题…我必须使用unicodePwd属性并确保它已正确编码:
final byte[] quotedPasswordBytes = ('"'+password+'"').getBytes("UTF-16LE"); container.put(new BasicAttribute("unicodePwd",quotedPasswordBytes)); 我在这里找到了答案: How do I resolve “WILL_NOT_PERFORM” MS AD reply when trying to change password in scala w/ the unboundid LDAP SDK? http://www.dirmgr.com/blog/2010/8/26/ldap-password-changes-in-active-directory.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Spring数据中的@Transient不起作用
- Maven+Tomcat8 实现自动化部署的方法
- java – 创建新Socket时添加超时
- spring4.3 实现跨域CORS的方法
- java – 将Maven项目转换为Gradle
- java – 为什么libgdx SpriteBatch / BitmapFont会破坏Text
- java – Spring XML tx:相当于@TransactionConfiguration的
- ftp 实现文件的上传下载以及列出文件列表Java代码
- java – 正则表达式中的双引号
- java – jersey 2.7在apache tomcat 7.0上运行时出现问题