資源簡介
java代碼操作linux上的openldap目錄服務器,進行增刪改查操作
代碼片段和文件信息
package?OpenConnect;
/**
?*
?*?@author?lin
?*/
import?java.util.Hashtable;
import?javax.naming.Context;
import?javax.naming.NamingEnumeration;
import?javax.naming.NamingException;
import?javax.naming.directory.*;
import?java.util.*;
public?class?Lin?{
DirContext?ctx?=?null;
String?account?=?“root“;//?操作LDAP的帳戶。默認就是Manager修改為root。
String?password?=?“111111“;//?帳戶root的密碼。
String?root?=?“dc=xxxdc=xxx“;?//?LDAP的根節點的DC
public?Lin()?{
init();
//add();
//delete();
modifyInformation(“cn=ca_admin““dc=deandc=com“);
//searchInformation(“dc=deandc=com“?““?“(objectclass=*)“);
//searchInformation(“ou=HRdc=deandc=com“?““?“(objectclass=*)“);
//renameEntry(“uid=Linou=department3ou=research?departmentdc=deandc=com“
// “uid=Linxianglongou=department3ou=research?departmentdc=deandc=com“);
//getobjectClassDefinition(“account“);?//獲取指定objectClass的定義
//getDNobjectClassDefinition(“uid=Liou=department3ou=research?departmentdc=deandc=com“)?;//獲取指定DN的objectClass定義
//getAttributeDefinition(“uid“);//獲取指定名字的Attribute定義
//getDNAttributeDefinition(“dc=deandc=com“?“objectClass“);
close();
}
public?void?init()?{
Hashtable?env?=?new?Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY“com.sun.jndi.ldap.LdapCtxFactory“);
env.put(Context.PROVIDER_URL?“ldap://192.168.0.114:389/“);
env.put(Context.SECURITY_AUTHENTICATION?“simple“);
env.put(Context.SECURITY_PRINCIPAL?“cn=“?+?account?+?““?+?root);
env.put(Context.SECURITY_CREDENTIALS?password);
try?{
ctx?=?new?InitialDirContext(env);//?初始化上下文
System.out.println(“認證成功“);//?這里可以改成異常拋出。
}?catch?(javax.naming.AuthenticationException?e)?{
System.out.println(“認證失敗“);
}?catch?(Exception?e)?{
System.out.println(“認證出錯:“?+?e);
}
}
?????
/*?添加新的ou?*/
public?void?add()?{
try?{
//String?newUserName?=?“lin“;
BasicAttributes?attrs?=?new?BasicAttributes();
BasicAttribute?objclassSet?=?new?BasicAttribute(“objectClass“);
objclassSet.add(“top“);
objclassSet.add(“organizationalRole“);
attrs.put(objclassSet);
long?t1=System.currentTimeMillis();
for(int?i=1;i<=100;i++){
????String?newUserName?=?“ca_admin“+i;
attrs.put(“cn“?newUserName);
ctx.createSubcontext(“cn=“?+?newUserName?+?““?+?root?attrs);
}
long?t2=System.currentTimeMillis();
System.out.println(“添加成功“);
System.out.println((t2-t1)/1000);
}?catch?(Exception?e)?{
e.printStackTrace();
System.out.println(“Exception?in?add():“?+?e);
}
}
/*?刪除ou?*/
public?void?delete()?{
try?{
long?t1=System.currentTimeMillis();
for(int?i=1;i<=100;i++){
????String?newUserName?=?“ca_admin“+i;
ctx.destroySubcontext(“ca=“+newUserName+“dc=deandc=com“);
}
System.out.println(“刪除成功“);
long?t2=System.currentTimeMillis();
System.out.println((t2-t1)/1000);
}?catch?(Exception?e)?{
e.printStackTr
- 上一篇:jintellitype-1.3.9
- 下一篇:3種設計模式的java小程序
評論
共有 條評論