增加用户
package cn.com.wilcom.main;
import java.util.Arrays;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class Add {
/** connect to ldap */
public LdapContext connectLDAP() throws NamingException {
Hashtable<String, String> HashEnv = new Hashtable<String, String>();
String adminName = "username@****.com.cn";//username登陆的用户名,@后面根据自己的情况写
String adminPassword = "password!";//密码
String ldapURL = "LDAP://IP:port";//格式:LDAP://IP:port;
HashEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple");// "none","simple","strong"
HashEnv.put(Context.SECURITY_PRINCIPAL, adminName);
HashEnv.put(Context.SECURITY_CREDENTIALS, adminPassword);
HashEnv.put(Context.PROVIDER_URL, ldapURL);
LdapContext ctx = new InitialLdapContext(HashEnv, null);
System.out.println("<<<:[connect success]:>>>");
return ctx;
}
/** add user to AD */
public void addUser() throws NamingException {
LdapContext ctx = connectLDAP();
Attributes attrs = new BasicAttributes(true);
Attribute objclass = new BasicAttribute("objectclass");
Attribute pass = new BasicAttribute("userpassword");
String newUserName = "fancionwang";
/** add password */
pass.add("111111");
/** add ObjectClass */
String[] attrObjectClassPerson = { "user", "organizationalPerson", "person", "top" };
Arrays.sort(attrObjectClassPerson);
for (String ocp : attrObjectClassPerson) {
objclass.add(ocp);
}
/** set attr */
attrs.put(pass);
attrs.put(objclass);
String userDN = "CN=" + newUserName + "," + "CN=Users,DC=wilcom,DC=com,DC=cn";
// int UF_ACCOUNTDISABLE = 0x0002;
int UF_PASSWD_NOTREQD = 0x0020;
// int UF_PASSWD_CANT_CHANGE = 0x0040;
int UF_NORMAL_ACCOUNT = 0x0200;
int UF_DONT_EXPIRE_PASSWD = 0x10000;
// int UF_PASSWORD_EXPIRED = 0x800000;
attrs.put("sn", "wang");
attrs.put("givenName", "fancion");
attrs.put("cn", newUserName);
attrs.put("displayName", newUserName);
attrs.put("mail", "fancionwang@163.com");
attrs.put("description", "test");
attrs.put("userPrincipalName", "fancionwang@wilcom.com.cn");
attrs.put("sAMAccountName", newUserName);
attrs.put("msDS-SupportedEncryptionTypes", "0");
/** 设置传真 */
attrs.put("facsimileTelephoneNumber", "fancionwang.fax.wiocom.com.cn");
/** 寻呼机 */
attrs.put("pager", "****");
/** ip电话 */
attrs.put("ipPhone", "****");
/** 家庭电话 */
attrs.put("homePhone", "********");
/** 移动电话 */
attrs.put("mobile", "***********");
/** 设置账户信息 */
attrs.put("userAccountControl",
Integer.toString(UF_DONT_EXPIRE_PASSWD + UF_NORMAL_ACCOUNT + UF_PASSWD_NOTREQD));
ctx.createSubcontext(userDN, attrs);
ctx.close();
System.out.println("<<<:[ADD success]:>>>");
}
public static void main(String[] args) throws NamingException {
new Add().addUser();
}
}
说明:
1: userDN:你所添加用户的路径
2:本案例不需要使用额外的jar包,使用java原生自来的就可以