JAVA用LDAP读取微软AD域里面的用户名组织架构等信息
来源:互联网 发布:淘宝店家温馨寄语 编辑:程序博客网 时间:2024/05/16 07:37
package com.app.frame.ldap;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class LdapTest {
public static void main(String args[]) {
Hashtable HashEnv = new Hashtable();
String LDAP_URL = "ldap://192.168.107.2: 389"; // LDAP访问地址
String adminName = "Administrator@SNGCC.com"; // 注意用户名的写法:domain\User 或
// User@domain.com
String adminPassword = "maindc"; // 密码
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, LDAP_URL);
try {
LdapContext ctx = new InitialLdapContext(HashEnv, null);
// Create the search controls
SearchControls searchCtls = new SearchControls();
// Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
// specify the LDAP search filter
String searchFilter = "objectClass=User";
// Specify the Base for the search 搜索域节点
String searchBase = "DC=SNGCC,DC=com";
int totalResults = 0;
String returnedAtts[] = { "url", "whenChanged", "employeeID",
"name", "userPrincipalName", "physicalDeliveryOfficeName",
"departmentNumber", "telephoneNumber", "homePhone",
"mobile", "department", "sAMAccountName", "whenChanged",
"mail" }; // 定制返回属性
searchCtls.setReturningAttributes(returnedAtts); // 设置返回属性集
// searchCtls.setReturningAttributes(null); // 不定制属性,将返回所有的属性集
// Search for objects using the filter
NamingEnumeration answer = ctx.search(searchBase, searchFilter,
searchCtls);
if (answer == null || answer.equals(null)) {
System.out.println("answer is null");
} else {
System.out.println("answer not null");
}
System.out.println(answer.hasMoreElements());
while (answer.hasMoreElements()) {
SearchResult sr = (SearchResult) answer.next();
System.out
.println("************************************************");
System.out.println("getname="+sr.getName());
Attributes Attrs = sr.getAttributes();
if (Attrs != null) {
try {
for (NamingEnumeration ne = Attrs.getAll(); ne
.hasMore();) {
Attribute Attr = (Attribute) ne.next();
System.out.println(" AttributeID="
+ Attr.getID().toString());
// 读取属性值
for (NamingEnumeration e = Attr.getAll(); e
.hasMore(); totalResults++) {
System.out.println(" AttributeValues="
+ e.next().toString());
}
System.out.println(" ---------------");
// 读取属性值
Enumeration values = Attr.getAll();
if (values != null) { // 迭代
while (values.hasMoreElements()) {
System.out.println(" AttributeValues="
+ values.nextElement());
}
}
System.out.println(" ---------------");
}
} catch (NamingException e) {
System.err.println("Throw Exception : " + e);
}
}
}
System.out.println("Number: " + totalResults);
ctx.close();
}
catch (NamingException e) {
e.printStackTrace();
System.err.println("Throw Exception : " + e);
}
}
}
- JAVA用LDAP读取微软AD域里面的用户名组织架构等信息
- java获取ldap域员工、组织信息
- java连接微软AD(LDAP)
- 读取AD组织架构用户,登陆名
- C# AD(Active Directory)域信息同步,组织单位、用户等信息查询
- C# AD(Active Directory)域信息同步,组织单位、用户等信息查询
- AD(Active Directory)域信息同步,组织单位、用户等信息查询
- C# AD(Active Directory)域信息同步,组织单位、用户等信息查询
- LDAP查询AD信息
- vc 导出AD域中用户的用户名 和登录名等信息
- 读取AD信息的例子
- 关于微软AD的LDAP的一篇好文章
- Java使用LdAP获取AD域用户
- 微软的组织架构和微软的网上资源架构
- Asp.net读取AD域信息的方法<转>
- Asp.net读取AD域信息的方法
- Java通过Ldap操作AD的增删改查询
- Java通过Ldap操作AD的增删改查询
- Oracle TRUNC(date) & TRUNC(number)
- 学习笔记之--属性、字段、变量
- 分享ADB用法
- 优秀程序员必备素质——快速调试
- UML中的各种关系示例
- JAVA用LDAP读取微软AD域里面的用户名组织架构等信息
- 第十六周实验报告2
- java 邮件操作 email
- 设置默认表空间
- ios获取本地图片以及图片信息
- 猪哥的公房菜(转载)
- C# C#如何判断线程池中所有的线程是否已经完成,Backgroudworker
- A*寻路算法
- android平台linux常见编译警告提示及解决方法