「java访问ldap」Java访问ldap库

博主:adminadmin 2022-12-02 15:06:08 118

本篇文章给大家谈谈java访问ldap,以及Java访问ldap库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java访问ldap服务,如何删除objectclass属性值

属性也分必须属性和可选属性,

必须的不能删除,你只可以删除可选的。

如何通过java操作ldap实现登录

catch (NamingException e) {

e.printStackTrace();

} finally {

if(ldapCtx != null) {

try {

ldapCtx.close();

} catch (NamingException e) {

}

}

java 访问ldap服务器,把dn下的树目录全部读取出来

拿到一个 InitialContext 之后 list(""); 就得到了一个集合,然后遍历这个 Enumeration 对象得到每个 Binding,它有 key 和 value,如果 value 是一个 Context 就是子目录了,再用 context.list("") 得到下面的子条目。递归你熟练吧。

在 InitialContext 中要先得到你的 root context,比如你可以先找公司的 Active X 域服务器练习一下,或安装一个 OpenLDAP 来练习。在 Active X 中,你能从自己的账户名看出规律的。

java 连接 ldap 报错

应该是用户名写的不对,env.put(Context.SECURITY_PRINCIPAL,"cn=" + username);

这里面应该写用户的全路径名,比如cn=xxxxx,dc=combatelecom,dc=com

说白了就是你怎么从根节点找到的用户,把用户节点的dn拷贝出来就行了

另外那个URL部分写成env.put(Context.PROVIDER_URL,"ldap://10.10.0.13:389")

如何使用java链接ldap数据库

public static void main(String[] args) {

String url = "ldap://10.0.0.10:389/";

String domain = "dc=dtas,dc=com";

String user = "cn=administrator,cn=users";

String password = "111111";

HashtableString, String env = new HashtableString, String();

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); // LDAP 工厂

env.put(Context.SECURITY_AUTHENTICATION, "simple"); // LDAP访问安全级别

env.put(Context.PROVIDER_URL, url);

env.put(Context.SECURITY_PRINCIPAL, user+","+domain); // 填DN

env.put(Context.SECURITY_CREDENTIALS, password); // AD Password

env.put("java.naming.ldap.attributes.binary", "objectSid objectGUID");

LdapContext ldapCtx = null;

try {

ldapCtx = new InitialLdapContext(env , null);

queryGroup(ldapCtx);

//queryUser(ldapCtx);

} catch (NamingException e) {

e.printStackTrace();

} finally {

if(ldapCtx != null) {

try {

ldapCtx.close();

} catch (NamingException e) {

}

}

}

}

private static void queryGroup(LdapContext ldapCtx) throws NamingException {

SearchControls searchCtls = new SearchControls();

searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);

String searchFilter = "objectClass=organizationalUnit";

String searchBase = "ou=myDeptSubDept,ou=myDept,dc=DS-66,dc=com";

String returnedAtts[] = {"distinguishedName", "objectGUID", "name"};

searchCtls.setReturningAttributes(returnedAtts);

NamingEnumerationSearchResult answer = ldapCtx.search(searchBase, searchFilter, searchCtls);

while (answer.hasMoreElements()) {

SearchResult sr = answer.next();

Attributes Attrs = sr.getAttributes();

if (Attrs != null) {

NamingEnumeration? ne = Attrs.getAll();

while(ne.hasMore()) {

Attribute Attr = (Attribute)ne.next();

String name = Attr.getID();

Enumeration? values = Attr.getAll();

if (values != null) { // 迭代

while (values.hasMoreElements()) {

String value = "";

if("objectGUID".equals(name)) {

value = UUID.nameUUIDFromBytes((byte[]) values.nextElement()).toString();

} else {

value = (String)values.nextElement();

}

System.out.println(name + " " + value);

}

}

}

System.out.println("=====================");

}

}

}

如何使用Java操作LDAP之LDAP连接

public static void main(String[] args) {

String url = "ldap://10.0.0.10:389/";

String domain = "dc=dtas,dc=com";

String user = "cn=administrator,cn=users";

String password = "111111";

HashtableString, String env = new HashtableString, String();

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); // LDAP 工厂

env.put(Context.SECURITY_AUTHENTICATION, "simple"); // LDAP访问安全级别

env.put(Context.PROVIDER_URL, url);

env.put(Context.SECURITY_PRINCIPAL, user+","+domain); // 填DN

env.put(Context.SECURITY_CREDENTIALS, password); // AD Password

env.put("java.naming.ldap.attributes.binary", "objectSid objectGUID");

LdapContext ldapCtx = null;

try {

ldapCtx = new InitialLdapContext(env , null);

queryGroup(ldapCtx);

//queryUser(ldapCtx);

} catch (NamingException e) {

e.printStackTrace();

} finally {

if(ldapCtx != null) {

try {

ldapCtx.close();

} catch (NamingException e) {

}

}

}

}

private static void queryGroup(LdapContext ldapCtx) throws NamingException {

SearchControls searchCtls = new SearchControls();

searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);

String searchFilter = "objectClass=organizationalUnit";

String searchBase = "ou=myDeptSubDept,ou=myDept,dc=DS-66,dc=com";

String returnedAtts[] = {"distinguishedName", "objectGUID", "name"};

searchCtls.setReturningAttributes(returnedAtts);

NamingEnumerationSearchResult answer = ldapCtx.search(searchBase, searchFilter, searchCtls);

while (answer.hasMoreElements()) {

SearchResult sr = answer.next();

Attributes Attrs = sr.getAttributes();

if (Attrs != null) {

NamingEnumeration? ne = Attrs.getAll();

while(ne.hasMore()) {

Attribute Attr = (Attribute)ne.next();

String name = Attr.getID();

Enumeration? values = Attr.getAll();

if (values != null) { // 迭代

while (values.hasMoreElements()) {

String value = "";

if("objectGUID".equals(name)) {

value = UUID.nameUUIDFromBytes((byte[]) values.nextElement()).toString();

} else {

value = (String)values.nextElement();

}

System.out.println(name + " " + value);

}

}

}

System.out.println("=====================");

}

}

}

关于java访问ldap和Java访问ldap库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-02,除非注明,否则均为首码项目网原创文章,转载请注明出处。