`
absolute
  • 浏览: 190273 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一段操作LDAP的java代码

阅读更多
java 代码
  1. public class LdapService {   
  2.     private Logger logger = Logger.getLogger(LdapService.class);   
  3.   
  4.     private Properties env;   
  5.   
  6.     private DirContext ctx;   
  7.   
  8.     public void setEnv(Properties env) {   
  9.         this.env = env;   
  10.     }   
  11.   
  12.     public NamingEnumeration search(String dn, String filter,   
  13.             String[] returningAttr) throws NamingException {   
  14.         try {   
  15.             ctx = new InitialDirContext(env);   
  16.             SearchControls constraints = new SearchControls();   
  17.             constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);   
  18.             constraints.setReturningAttributes(returningAttr);   
  19.             return ctx.search(dn, filter, constraints);   
  20.         } finally {   
  21.             if (ctx != null) {   
  22.                 try {   
  23.                     ctx.close();   
  24.                 } catch (Exception ex) {   
  25.                     logger.error(ex);   
  26.                 }   
  27.             }   
  28.         }   
  29.     }   
  30. }  

下面是测试代码:

java 代码
  1. public class LdapTest extends BaseUnitTest {   
  2.   
  3.     public void testSerach() {   
  4.         LdapService ldap = (LdapService) this.applicationContext   
  5.                 .getBean("ldapService");   
  6.         String dn = "ou=people,dc=ibm,dc=com";   
  7.         String[] returningAttr = null;   
  8.         String filter = "uid=c0001";   
  9.         try {   
  10.             NamingEnumeration n = ldap.search(dn, filter, returningAttr);   
  11.             if (n.hasMoreElements()) {   
  12.                 SearchResult sr = (SearchResult) n.next();   
  13.                 printAttributes(sr.getAttributes());   
  14.             }   
  15.         } catch (Exception e) {   
  16.             e.printStackTrace();   
  17.         }   
  18.     }   
  19.        
  20.     private void printAttributes(Attributes attributes) throws NamingException {   
  21.         String attrType;   
  22.         Attribute attr;   
  23.         NamingEnumeration ne;   
  24.   
  25.         // Iterate through the attributes..   
  26.         for (NamingEnumeration a = attributes.getAll(); a.hasMore();) {   
  27.             attr = (Attribute) a.next();   
  28.   
  29.             System.out.print(attr.getID() + ": ");   
  30.   
  31.             ne = attr.getAll();   
  32.             while (ne.hasMore()) {   
  33.                 System.out.print(ne.next());   
  34.             }   
  35.   
  36.             System.out.print("\n");   
  37.         }   
  38.     }   
  39. }  
分享到:
评论

相关推荐

    用sql语句的方式操作ldap

    `getLdap.java` 文件很可能是一个示例代码,展示了如何使用Java进行LDAP操作。以下是一段基本的示例: ```java import javax.naming.*; import javax.naming.directory.*; public class GetLdap { public static ...

    java 连接ldap 服务器源码

    下面是一段简单的Java代码示例,展示了如何使用JNDI连接到LDAP服务器: ```java import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.naming....

    将 LDIF 文件导入 LDAP 服务器.txt

    这段代码定义了一个名为“John Doe”的用户,拥有多个对象类,并包含了一些基本的属性如姓名、用户名和密码。 #### 二、准备工作 在进行导入操作之前,有几个关键的准备工作需要完成: 1. **备份现有数据**:在...

    JAVA上百实例源码以及开源项目源代码

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    LDAP验证的部分代码

    本文将深入解析一段关于LDAP登录验证的Java代码,帮助读者理解其核心逻辑及实现细节。 #### 二、关键类与方法介绍 1. **UserAuthenticate 类**: - 这个类是该段代码的核心,包含了进行LDAP认证的主要方法。 - ...

    java通过LDAP验证Active Directory服务

    下面是一段示例代码,展示了如何使用Java进行验证: ```java import java.util.Hashtable; import javax.naming.Context; import javax.naming.NamingException; import javax.naming.directory.DirContext; import...

    com.sun.jndi.ldap.jar

    这段代码展示了如何创建一个LDAP上下文,执行搜索操作,并处理结果。 总的来说,`com.sun.jndi.ldap.jar`对于需要与LDAP服务器交互的Java应用来说是至关重要的。虽然在Maven中央仓库中可能难以找到,但通过上述方法...

    JAVA修改AD域密码_免证书

    1. **禁用SSL验证**:在Java代码中,我们可以设置`java.security.properties`文件,关闭SSL证书检查。这可以通过以下代码实现: ```java System.setProperty("java.security.properties", "path/to/your/security....

    JAVA JNDI免证书修改AD域密码.zip

    JNDI(Java Naming and Directory Interface)则是Java平台上的一个标准接口,允许Java应用程序访问各种命名和目录服务,如LDAP(轻量级目录访问协议),而AD通常通过LDAP接口进行操作。 在这个主题中,"免证书"指...

    java开源包8

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包10

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包6

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包4

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包9

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包101

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包5

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包1

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

    java开源包3

    JOpenID是一个轻量级的OpenID 2.0 Java客户端,仅50KB+(含源代码),允许任何Web网站通过OpenID支持用户直接登录而无需注册,例如Google Account或Yahoo Account。 JActor的文件持久化组件 JFile JFile 是 JActor ...

Global site tag (gtag.js) - Google Analytics