java代码LDAP操作(增删改查)AD(活动目录)- 添加

增加用户

 

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原生自来的就可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值