JAVA用LDAP读取微软AD域里面的用户名组织架构等信息
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA用LDAP读取微软AD域里面的用户名组织架构等信息,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3840字,纯文字阅读大概需要6分钟。
内容图文
![JAVA用LDAP读取微软AD域里面的用户名组织架构等信息](/upload/InfoBanner/zyjiaocheng/601/6a57e362b5a74fb689bd1f3406b487ef.jpg)
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);
}
}
}
————————————————
版权声明:本文为CSDN博主「guchuanlong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guchuanlong/article/details/7634103
内容总结
以上是互联网集市为您收集整理的JAVA用LDAP读取微软AD域里面的用户名组织架构等信息全部内容,希望文章能够帮你解决JAVA用LDAP读取微软AD域里面的用户名组织架构等信息所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。