BasicAttribute ocattr = new BasicAttribute("objectClass");
ocattr.add("top");
ocattr.add("person");
ocattr.add("organizationalPerson");
//ocattr.add("user");
// 用户属性
Attributes attrs = new BasicAttributes();
attrs.put(ocattr);
//用户登录名
attrs.put("userPrincipalName", user.getLoginName());
//用户登录名 windows 2000以前的版本
attrs.put("sAMAccountName", user.getLoginName());
//用户正式名
attrs.put("cn", user.getUserName());
//姓
attrs.put("sn", user.getSn());
//名
attrs.put("givenname", user.getGivenName());
//显示名称
attrs.put("displayName", user.getDisplayName());
//邮件
attrs.put("mail", user.getEmail());
//下次登录修改密码
//attrs.put("pwdLastSet", "0");
//启用账户
//attrs.put("userAccountControl","544");
//密码
attrs.put("userPassword", "123456");
ldapTemplate.bind(LdapNameBuilder.newInstance("").add("ou","user").add("CN", user.getUserName()).build(), null, attrs);
ldap创建用户时报错。
Caused by: javax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - userPrincipalName: attribute type undefined]; remaining name 'CN=H00002,ou=user'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3223)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3100)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2891)
at com.sun.jndi.ldap.LdapCtx.c_bind(LdapCtx.java:423)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_bind(ComponentDirContext.java:299)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.bind(PartialCompositeDirContext.java:217)
at javax.naming.directory.InitialDirContext.bind(InitialDirContext.java:182)
at org.springframework.ldap.core.LdapTemplate$21.executeWithContext(LdapTemplate.java:996)
at org.springframework.ldap.core.LdapTemplate.executeWithContext(LdapTemplate.java:821)
... 71 more