• 大小: 13KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Java
  • 标签: openldap  java  

资源简介

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

评论

共有 条评论