程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 封裝JNDI操作LDAP服務器的工具類(5)

封裝JNDI操作LDAP服務器的工具類(5)

編輯:關於JAVA

目標:使用者只需要會使用List,Map 數據結構,將對LDAP的操作進行封裝

  

  類:主要有三個類

  

  1 Env類 包含LDAP的連接信息

  

  2 LdapConnectionFactory類 ldap連接工廠,提供初始化及獲取ldap連接的方法

  

  3 LdapOperUtils ldap的處理工具類,提供了各種操作ldap的方法。

  

  如何使用封裝JNDI操作LDAP服務器

的工具類

  

  下面是一個例子

  

  測試類的功能,向Windows Active Directory 增加一個域用戶 lwf2_count,並激活該帳戶

  

  public class TestOper {

  

  public static void main(String args[]) throws BaseException,

  NamingException, UnsupportedEncodingException {

  // 連接Active Directory 信息

  Env env = new Env();

  env.factory = "com.sun.jndi.ldap.LdapCtxFactory";

  env.url = "ldap://10.110.179.175:389";

  env.adminUID = "cn=administrator,cn=users,DC=securitytest,DC=boco";

  env.adminPWD = "Ba88736612";

  DirContext dirContext = LdapConnectionFactory.getDirContext(env);

  

  // 增加一個Active Directory 用戶需要的屬性

  List list1 = new ArrayList();

  Map attMap = new HashMap();

  

  list1.add("top");

  list1.add("person");

  list1.add("organizationalPerson");

  list1.add("user");

  attMap.put("objectclass", list1);

  

  attMap.put("cn","lwf2_count"); // Active Directory 的name

  ttMap.put("sn","liao");   // Active Directory 的 姓

  attMap.put("givenName","wufeng");    // Active Directory 的 名

  attMap.put("displayName","liaowufeng"); // Active Directory 的 顯示名

  

  attMap.put("userPrincipalName","[email protected]"); // Active Directory 的 用戶登錄名

  attMap.put("saMaccountName","lwf2_name"); // Active Directory 的 用戶登錄名 (widnows 2000 以前版本)

  

  String newPassWord = "bA123456";

  attMap.put("userPassword",newPassWord); // 用戶密碼

  

  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;

  // 激活帳號

  attMap.put("userAccountControl", Integer.toString(UF_DONT_EXPIRE_PASSWD));

  

  LdapOperUtils.addContext(dirContext,"CN=lwf2_count,CN=Users,DC=securitytest,DC=boco", attMap);

  // 關閉dirContext

  LdapConnectionFactory.closeDirContext(dirContext);

  }

  }

  

  好了,就寫到這了,LdapOperUtils這個類提供了LDAP操作大多數要使用的方法。所有方法在實際工作中都使用過。

  

  對於各位有什麼更好的想法,或需要的操作,沒有提供到,請與我聯系,共同討論。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved