Ldap
采用的是novell 的API。
参考代码如下:
创建连接LDAP的类:Ldap_Connection
package ldap1;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;
public class Ldap_Connection {
@SuppressWarnings("deprecation")
public static LDAPConnection getLdapConnection(){
LDAPConnection lc = new LDAPConnection();
try {
lc.connect("192.168.1.13",9389); lc.bind(LDAPConnection.LDAP_V3,"cn=li,ou=People,dc=gsoft,dc=com","newpassword");
System.out.println("连接成功!");
return lc ;
} catch (LDAPException e) {
System.err.print("连接异常! ");
e.printStackTrace();
}
return null;
}
}
创建添加类:Ldap_Add
package ldap1;
import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPAttributeSet;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPEntry;
import com.novell.ldap.LDAPException;
public class Ldap_Add {
public static void LDAP_add(LDAPConnection ldapConnection) throws LDAPException{
LDAPAttributeSet attributeSet = new LDAPAttributeSet();
attributeSet.add(new LDAPAttribute("objectclass", new String(
"inetOrgPerson")));
attributeSet.add(new LDAPAttribute("cn", new String[] { "li",
"Jim Smith", "Jimmy Smith" }));
attributeSet.add(new LDAPAttribute("givenname", new String[] { "测试",
"Jim", "Jimmy" }));
attributeSet.add(new LDAPAttribute("sn", new String("Smith")));
attributeSet.add(new LDAPAttribute("telephonenumber", new String(
"1 801 555 1212")));
attributeSet.add(new LDAPAttribute("mail",
new String("JSmith@Acme.com")));
attributeSet.add(new LDAPAttribute("userpassword", new String(
"newpassword")));
LDAPEntry entry = new LDAPEntry("cn=li,ou=People,dc=gsoft,dc=com",
attributeSet);
ldapConnection.add(entry);
System.out.println("成功的添加了一条记录!");
ldapConnection.disconnect();
}
}
创建删除类:Ldap_Delete
package ldap1;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;
public class Ldap_Delete {
public static void LDAP_Delete(LDAPConnection lc) throws LDAPException{
LDAPConnection lConnection = Ldap_Connection.getLdapConnection() ;
lConnection.delete("cn=李,ou=People,dc=gsoft,dc=com") ;
lConnection.disconnect() ;
System.out.println("删除一条记录");
}
}
创建查询类:Ldap_Seach
package ldap1;
import java.util.Iterator;
import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPEntry;
import com.novell.ldap.LDAPException;
import com.novell.ldap.LDAPSearchResults;
/**
* LDAPConnection.SCOPE_ONE // 只查找基节点第一层的子节点
* LDAPConnection.SCOPE_BASE // 只查找基节点
* LDAPConnection.SCOPE_SUB // 查找基节点下面的所有子节点
**/
public class Ldap_Search {
public static void LDAP_Search(LDAPConnection lc) throws LDAPException{
LDAPSearchResults rs = lc.search("dc=gsoft,dc=com",LDAPConnection.SCOPE_SUB,"objectClass=*",null,false);
int count = 0;
while(rs.hasMore()){
LDAPEntry entry = rs.next();
System.out.println(entry.getDN());
count++;
}
lc.disconnect() ;
System.out.println("共有"+count+"条记录。");
lc.disconnect();
}
/**
* 遍历该用户下的所有属性和属性值
* **/
public static void Ldap_Search2(LDAPConnection lc) throws LDAPException{
//http://hi.baidu.com/maimouse/blog/item/5862142c746249e88b139910.html
//http://blog.csdn.net/ZhuYujie/archive/2008/07/21/2685366.aspx
LDAPSearchResults rs = lc.search("cn=li,ou=People,dc=gsoft,dc=com",LDAPConnection.SCOPE_SUB,"objectClass=*",null,false);
int count = 0;
Iterator iterator = null ;
LDAPEntry entry ;
while(rs.hasMore()){
entry = rs.next();
// System.out.println(entry.getDN());
LDAPAttributeSet lAttributeSet = entry.getAttributeSet();
iterator = (Iterator) lAttributeSet.iterator();
while(iterator.hasNext()){
LDAPAttribute Attribute =(LDAPAttribute) iterator.next() ;
System.out.println("name="+Attribute.getName());
System.out.println("vale="+Attribute.getStringValue());
count++;
}
}
lc.disconnect() ;
System.out.println("共有"+count+"条记录。");
lc.disconnect();
}
}
创建修改类:Ldap_Search
package ldap1;
import java.util.ArrayList;
import com.novell.ldap.LDAPAttribute;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;
import com.novell.ldap.LDAPModification;
public class Ldap_Update {
public static void LDAP_Upate(LDAPConnection lc) throws LDAPException{
ArrayList<LDAPModification> modList = new ArrayList<LDAPModification>();
LDAPAttribute attribute = new LDAPAttribute("mail", "JSmith@yyn.com");
modList.add(new LDAPModification(LDAPModification.REPLACE, attribute));
// attribute = new LDAPAttribute("givenName","修改") ;
// modList.add(new LDAPModification(LDAPModification.ADD, attribute));
// 这里 LDAPModification 对象有几种方式 LDAPModification.ADD、LDAPModification.DELETE、LDAPModification.REPLACE
// 用list填充 LDAPModification 对象
LDAPModification[] modsadd = new LDAPModification[modList.size()];
modsadd = (LDAPModification[]) modList.toArray(modsadd);
// 通过 LDAP连接就行修改操作
String dn = "cn=li,ou=People,dc=gsoft,dc=com" ;
lc.modify(dn, modsadd);
lc.disconnect() ;
}
}
创建测试类:Ldap_Main
package ldap1.main;
import ldap1.Ldap_Add;
import ldap1.Ldap_Connection;
import ldap1.Ldap_Delete;
import ldap1.Ldap_Search;
import ldap1.Ldap_Update;
import com.novell.ldap.LDAPConnection;
//http://blog.csdn.net/TechChan/archive/2010/04/13/5482170.aspx
public class Ldap_Main {
public static void main(String[] args) {
LDAPConnection ldapConnection = Ldap_Connection.getLdapConnection() ;
try {
Ldap_Delete.LDAP_Delete(ldapConnection);
Ldap_Add.LDAP_add(ldapConnection) ;
Ldap_Search.LDAP_Search(ldapConnection) ;
Ldap_Update.LDAP_Upate(ldapConnection) ;
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上几个简单的功能,能够完成对Ldap的连接,添加、删除、更新、查询的简单操作。
分享到:
相关推荐
JAVA ldap AD 域 免证书 查询 修改 删除 新增 启用 禁用 修改密码
java LDAP操作
java LDAP+CAS单点登录,里面包含LDAP的安装程序,安装文档,代码文档,程序源码,比较详细,如不懂加群 87115896
JAVA中使用LDAP进行用户认证,可靠、可用、可复制
java Ldap增删改查代码。ldap样例数据,可用来导入。
java使用ldap修改ad域用户密码
java操作ldap类java操作ldap类java操作ldap类
LDAP programming with java
JAVA操作LDAP的增删改查 包括连接已经属性的更新操作
java连接LDAP实例和jar包,里面包含ssl连接和更改LDAP属性的例子,公参考
LDAP安装手册 通过此文件,可以知道SUN LDAP安装操作全过程
具体的JNDI对openLDAP的操作,java对ldapd增删改查
JAVA通过LDAP+SSL(证书)实现用户和组织(部门)增删改查(Java代码部分),里面包含源码和文档,以便大家测试。
java 操作ldap的简单实例,希望可以能够给你启发
JavaLDAP Server 项目的目标是用 Java 编程语言编写符合 LDAPv3 的目录服务器。
具有LDIF支持,安全性(包括SSL,SASL和GSSAPI),翻译成多种语言(包括中文),在线帮助,用户表单和许多其他功能的Java LDAP客户端。 商业版本可在https://jxworkbench.com上以9.95美元的价格购买。 它扩展了...
JNDI 操作 LDAP的几个例子源码 包括连接、添加、删除、修改、搜寻
怎么用java来编写Ldap编程. 教你一些怎样连接DB,怎样操作数据库 .呵呵,,,
LDAP的java测试程序,可以用来测试你的LDAP配置是否正确
java操作Ldap,支持建立开启状态的用户,支持修改密码,放入eclipse测试即用,彻底操作AD域用户,有不明白的可以联系我