/** * 读取域用户信息 * @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中的用户名 #### 知识点概览 1. **LDAP简介** 2. **Python LDAP模块介绍** 3. **Python脚本配置与执行** 4. **脚本解析** - 连接LDAP服务器 - 搜索过滤器 - 处理搜索结果 - 错误处理 5. ...
Spring Boot 中使用 LDAP 统一管理用户信息的示例 本篇文章主要介绍了 Spring Boot 中使用 LDAP 来统一管理用户信息的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。下面我们将详细介绍 LDAP 的基础...
1. **连接 LDAP 服务器**:首先,需要建立一个环境属性对象,并配置 LDAP 服务器的URL、端口、基础DN(Distinguished Name)等信息。然后,使用InitialDirContext工厂类创建一个目录上下文对象。 2. **搜索 LDAP ...
- 电话簿应用可能通过LDAP查询用户信息,如姓名、电话、邮箱等,并在界面上展示。 - 用户可能能通过界面输入搜索条件,应用会将这些条件转换为LDAP过滤器来执行查询。 - 应用可能还提供了添加新联系人到LDAP目录...
- **LdapReaderImpl1.java**: 类似地,这个实现类可能用于读取LDAP目录中的信息,比如在登录时获取用户详情。 - **LdapWriter1.java** 和 **LdapReader1.java**: 这两个类可能是抽象层或接口,定义了与LDAP交互的...
- **访问控制**:LDAP提供了复杂的访问控制机制(ACI),允许管理员设置细粒度的权限,比如用户可以更改自己的信息,而只能查看特定信息。这种控制可以基于用户、组、对象类别等多种因素。 - **安全特性**:数据安全...
在信息技术领域,域认证是一种重要的身份验证机制,它允许用户在特定的网络环境中登录并访问资源。 Lightweight Directory Access Protocol(LDAP)是实现这种认证方式的一种标准协议。Python作为一种强大的脚本语言...
例如,企业通讯录、客户信息、网络管理信息等,都可以高效地存储在LDAP目录中。然而,对于需要频繁交易处理的场景,如电子商务网站,LDAP可能不是最佳解决方案,因为它的优化主要集中在读取性能,而不是处理大量实时...
在实现LDAP用户验证时,有几个关键的安全性和性能问题需要注意: - **安全性**:确保所有敏感信息(如用户名、密码)的传输安全,使用SSL/TLS加密通信;同时,避免在代码中硬编码服务器地址和凭证信息。 - **性能...
3. **数据转换**: 设计一个转换类,使用反射方法读取ldap条目的属性,并将其赋值给对应的Java对象。 4. **查询操作**: 使用`LdapTemplate`进行查询、增删改查等操作。例如,查找特定用户、更新用户信息等。 5. **...
1. 目录数据库:LDAP目录不同于传统数据库,它侧重于高频率的读取操作而非频繁的更新。因此,它在访问速度上做了优化,但不适合需要快速更新信息的场景。 2. 有限的信息对象类型:LDAP目录中的信息对象类型相对固定...
当需要跨平台共享数据、多用户/应用并发访问、数据频繁查询且更新较少、或者希望避免复杂的关系型数据库结构时,可以考虑使用LDAP来存储和管理数据。 **9. LDAP V3协议** LDAP V3是最广泛使用的版本,其规范定义了...
LDIF(LDAP Interchange Format)是指存储 LDAP 配置信息及目录内容的标准文本文件格式,之所以使用文本文件来格式来存储这些信息是为了方便读取和修改,这也是其它大多数服务配置文件所采取的格式。LDIF 文件常用来...
它提供了用户和用户组管理集中化、信息存储集中化、设置安全和访问控制、安全委托读取和修改权等功能。LDAP 协议跨平台、网络意识强、并且基于标准。 LDAP 能做什么 * 用户和用户组管理集中化 * 信息存储集中化 * ...
认证过程确保用户有权访问特定的目录信息。这可以通过多种方式实现,包括简单的用户名/密码验证或更复杂的身份验证机制。 **示例代码**: ```c LDAP *ld; char *host = "ldap.example.com"; char *binddn = "uid=...
3. **灵活的属性定义**:LDAP允许自定义属性,使得它可以适应各种不同类型的目录服务需求,无论是用户账户管理还是设备配置信息存储。 4. **安全认证**:LDAP支持多种认证机制,包括SSL/TLS加密通信,确保数据传输...
2. **目录服务**:对于需要存储大量用户信息、组织结构等目录信息的应用场景非常适用。 3. **应用集成**:在多个应用程序之间共享信息的情况下,使用LDAP可以简化集成过程并提高效率。 4. **数据分发**:LDAP支持...
你需要创建一个包含用户信息的数据目录,并确保OpenDS能够正确地读取和写入这些信息。 3. **集成James与OpenDS**:Apache James可以通过配置文件(如`james-server.conf`)连接到OpenDS LDAP服务器。你需要提供...
LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,常用于存储和管理组织结构化数据,如用户账号、组信息、网络设备配置等。它提供了一种标准的方式来访问和操作这些数据,使得多个应用和...
5. **权限管理**:管理员可以通过LdapAdmin控制不同用户的访问权限,设置哪些用户可以读取、写入或修改特定目录条目。 6. **安全审计**:该工具可能提供日志记录和审计功能,帮助管理员追踪对目录的访问和修改,...