`

读取ldap用户信息

    博客分类:
  • ldap
 
阅读更多
/**
	 * 读取域用户信息
	 * @return user集合
	 * @throws Exception
	 */
	public List getDomainInfo(String ip,String adminName,String adminPassword,String port,String ldapBase) throws Exception{
	    Hashtable<String,String> HashEnv = new Hashtable<String,String>();
	    List list = new ArrayList();
	    String ldapurl = "ldap://"+ip+":"+port;
	    HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); //LDAP访问安全级别
	    HashEnv.put(Context.SECURITY_PRINCIPAL, adminName); //AD User
	    HashEnv.put(Context.SECURITY_CREDENTIALS, adminPassword); //AD Password
	    HashEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); //LDAP工厂类
	    HashEnv.put(Context.PROVIDER_URL, ldapurl);

	    try {
	      LdapContext ctx = new InitialLdapContext(HashEnv, null);
	      SearchControls searchCtls = new SearchControls();
	      searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
	      
	      String searchFilter = "objectClass=User";
	 
	      String searchBase = ldapBase;
	      int totalResults = 0;
	      String returnedAtts[] = {"displayName","userPrincipalName"}; //定制返回属性

	      searchCtls.setReturningAttributes(returnedAtts); //设置返回属性集 如果为空则返回全部

	      //Search for objects using the filter
	      NamingEnumeration answer = ctx.search(searchBase, searchFilter,searchCtls);
	   
	      while (answer.hasMoreElements()) {
	    	
	        SearchResult sr = (SearchResult) answer.next();
	 
	        Attributes Attrs = sr.getAttributes();
	        if (Attrs != null&&Attrs.get("userPrincipalName")!=null) {
	        	UserInfo user = new UserInfo();
	        	if(Attrs.get("userPrincipalName")!=null){
	        		String username = Attrs.get("userPrincipalName")+"";
	            	user.setUsername(username.substring(19,username.length()));  //登录名称
	        	}

	        	list.add(user);
	        }
	      }
	      ctx.close();
	    }catch (NamingException e) {
	      System.err.println("Throw Exception : " + e);
	      e.printStackTrace();
	    }
	    return list;
	}

 

分享到:
评论

相关推荐

    使用Python读取Ldap中的用户名

    ### 使用Python读取LDAP中的用户名 #### 知识点概览 1. **LDAP简介** 2. **Python LDAP模块介绍** 3. **Python脚本配置与执行** 4. **脚本解析** - 连接LDAP服务器 - 搜索过滤器 - 处理搜索结果 - 错误处理 5. ...

    Spring Boot中使用LDAP来统一管理用户信息的示例

    Spring Boot 中使用 LDAP 统一管理用户信息的示例 本篇文章主要介绍了 Spring Boot 中使用 LDAP 来统一管理用户信息的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。下面我们将详细介绍 LDAP 的基础...

    Ldap文件读取工具(Java)

    1. **连接 LDAP 服务器**:首先,需要建立一个环境属性对象,并配置 LDAP 服务器的URL、端口、基础DN(Distinguished Name)等信息。然后,使用InitialDirContext工厂类创建一个目录上下文对象。 2. **搜索 LDAP ...

    ldap.zip_LDAP DELPHI_delphi ldap

    - 电话簿应用可能通过LDAP查询用户信息,如姓名、电话、邮箱等,并在界面上展示。 - 用户可能能通过界面输入搜索条件,应用会将这些条件转换为LDAP过滤器来执行查询。 - 应用可能还提供了添加新联系人到LDAP目录...

    登陆模块,与ldap连接获取信息

    - **LdapReaderImpl1.java**: 类似地,这个实现类可能用于读取LDAP目录中的信息,比如在登录时获取用户详情。 - **LdapWriter1.java** 和 **LdapReader1.java**: 这两个类可能是抽象层或接口,定义了与LDAP交互的...

    LDAP实用部署说明

    - **访问控制**:LDAP提供了复杂的访问控制机制(ACI),允许管理员设置细粒度的权限,比如用户可以更改自己的信息,而只能查看特定信息。这种控制可以基于用户、组、对象类别等多种因素。 - **安全特性**:数据安全...

    Python 和 LDAP进行域认证

    在信息技术领域,域认证是一种重要的身份验证机制,它允许用户在特定的网络环境中登录并访问资源。 Lightweight Directory Access Protocol(LDAP)是实现这种认证方式的一种标准协议。Python作为一种强大的脚本语言...

    LINUX LDAP 服务器 简介

    例如,企业通讯录、客户信息、网络管理信息等,都可以高效地存储在LDAP目录中。然而,对于需要频繁交易处理的场景,如电子商务网站,LDAP可能不是最佳解决方案,因为它的优化主要集中在读取性能,而不是处理大量实时...

    C#使用Domino的LDAP服务验证用户

    在实现LDAP用户验证时,有几个关键的安全性和性能问题需要注意: - **安全性**:确保所有敏感信息(如用户名、密码)的传输安全,使用SSL/TLS加密通信;同时,避免在代码中硬编码服务器地址和凭证信息。 - **性能...

    Java操作ldap(springboot工程)

    3. **数据转换**: 设计一个转换类,使用反射方法读取ldap条目的属性,并将其赋值给对应的Java对象。 4. **查询操作**: 使用`LdapTemplate`进行查询、增删改查等操作。例如,查找特定用户、更新用户信息等。 5. **...

    LDAP原理配置指南

    1. 目录数据库:LDAP目录不同于传统数据库,它侧重于高频率的读取操作而非频繁的更新。因此,它在访问速度上做了优化,但不适合需要快速更新信息的场景。 2. 有限的信息对象类型:LDAP目录中的信息对象类型相对固定...

    LDAP基础培训资料

    当需要跨平台共享数据、多用户/应用并发访问、数据频繁查询且更新较少、或者希望避免复杂的关系型数据库结构时,可以考虑使用LDAP来存储和管理数据。 **9. LDAP V3协议** LDAP V3是最广泛使用的版本,其规范定义了...

    ldap 详解(linux 下的ldap配置精华文档)

    LDIF(LDAP Interchange Format)是指存储 LDAP 配置信息及目录内容的标准文本文件格式,之所以使用文本文件来格式来存储这些信息是为了方便读取和修改,这也是其它大多数服务配置文件所采取的格式。LDIF 文件常用来...

    在Linux上搭建LDAP服务器

    它提供了用户和用户组管理集中化、信息存储集中化、设置安全和访问控制、安全委托读取和修改权等功能。LDAP 协议跨平台、网络意识强、并且基于标准。 LDAP 能做什么 * 用户和用户组管理集中化 * 信息存储集中化 * ...

    LDAP 应用程序接口

    认证过程确保用户有权访问特定的目录信息。这可以通过多种方式实现,包括简单的用户名/密码验证或更复杂的身份验证机制。 **示例代码**: ```c LDAP *ld; char *host = "ldap.example.com"; char *binddn = "uid=...

    LDAP简介.pdf

    3. **灵活的属性定义**:LDAP允许自定义属性,使得它可以适应各种不同类型的目录服务需求,无论是用户账户管理还是设备配置信息存储。 4. **安全认证**:LDAP支持多种认证机制,包括SSL/TLS加密通信,确保数据传输...

    Ldap入门文档

    2. **目录服务**:对于需要存储大量用户信息、组织结构等目录信息的应用场景非常适用。 3. **应用集成**:在多个应用程序之间共享信息的情况下,使用LDAP可以简化集成过程并提高效率。 4. **数据分发**:LDAP支持...

    Apache James 3.0支持LDAP参考文档

    你需要创建一个包含用户信息的数据目录,并确保OpenDS能够正确地读取和写入这些信息。 3. **集成James与OpenDS**:Apache James可以通过配置文件(如`james-server.conf`)连接到OpenDS LDAP服务器。你需要提供...

    ldap安装配置

    LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,常用于存储和管理组织结构化数据,如用户账号、组信息、网络设备配置等。它提供了一种标准的方式来访问和操作这些数据,使得多个应用和...

    LdapAdmin.rar

    5. **权限管理**:管理员可以通过LdapAdmin控制不同用户的访问权限,设置哪些用户可以读取、写入或修改特定目录条目。 6. **安全审计**:该工具可能提供日志记录和审计功能,帮助管理员追踪对目录的访问和修改,...

Global site tag (gtag.js) - Google Analytics