java实现ldap(java实现lda模型)

本文目录一览:

java 怎么样实现新建一个ldap OU,通过用户在控制台自定义输入DN,在AD中自动建好OU相关目录?

写代码程序把你写的这个 DN,分拆成每个 SubContext ,然后在代码中绑定上去:

// initialize config

Properties config = new Properties();

config.setProperty(Context.PROVIDER_URL, 你的 root URL);

Context root = new InititalContext().lookup(“”);

Context abc = root.createSubContext(“ou=Abc”);

Context cde = abc.createSubContext(“ou=Cde”);

你的收到的 DN 分拆成这几个步骤依次 createSubContext 就好了。

如何使用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实现登录

catch (NamingException e) {

e.printStackTrace();

} finally {

if(ldapCtx != null) {

try {

ldapCtx.close();

} catch (NamingException e) {

}

}

原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/130209.html

(0)
简单一点的头像简单一点
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

  • dbeaver使用详解

    一、db.insert使用 在dbeaver中进行db.insert操作非常简便。我们可以通过以下步骤来完成: 1.在“数据库连接器”中找到我们要操作的数据库连接,右键选择“SQL…

    编程 2024-10-03
  • C++一元运算符:递增和递减

    一、数值类型的递增和递减 对于数值类型,递增运算符(++)将操作数加1,递减运算符(–)将操作数减1。我们可以通过以下代码示例,来看一下在不同位置使用递增和递减运算符的…

    编程 2024-10-04
  • 使用Java Concat来实现字符串拼接

    背景介绍 在Java中,字符串拼接操作是非常常见的操作。很多时候我们需要将不同的字符串拼接在一起,以生成最终的字符串。有很多种方法可以实现字符串拼接,本文将会介绍使用Java Co…

    编程 2024-10-04
  • 关于post提交数值到php的信息

    本文目录一览: 1、php post 提交数据 2、ajax POST方式传输数据给php 3、求助PHP如何POST提交数据 4、js到底如何将一堆数组通过post的方法发送给p…

    编程 2024-10-03
  • 使用Python轻松实现GNU操作

    GNU操作是一套免费及开源的操作系统,与Windows和Mac OS等商业操作系统不同。它最早由理查德·斯托曼于1983年发起,其标志性的特征是完全的自由和开放性。然而,这个操作系…

    编程 2024-10-04
  • 包含mysql数据库utf8mb4的词条

    本文目录一览: 1、如何在mysql中存取utf8mb4编码的字符 2、mysql 5.7怎么设置成utf8mb4 3、如何mysql 5.7的编码设置成utf8mb4 如何在my…

    编程 2024-10-03
  • golang协程交叉打印,golang 结束协程

    本文目录一览: 1、golang打印栈大小 2、golang调用远程打印机 3、golangos.exit阻止 4、Channel简易教程 golang打印栈大小 8.1。根据查询…

    编程 2024-10-04
  • macOS升级Node.js的完整指南

    Node.js是一种使用广泛的JavaScript运行时,它可以让开发人员构建高效、可扩展的网络应用程序。如果你作为一名Mac用户,需要升级Node.js版本,那么本文将为你提供全…

    编程 2024-10-04
  • php双引号单引号,php单双引号区别

    本文目录一览: 1、PHP语法中 单引号和双引号的区别 2、php 单引号和双引号的区别 3、php字符串中的双引号与单引号区别 4、PHP中单引号与双引号的区别分析 5、PHP中…

    编程 2024-10-04
  • java写一年的日历(用java写一个日历)

    本文目录一览: 1、怎样用java编写日历 2、用java(用calendar类)写一个万年历,输入年并且显示当年的日历 3、如何用JAVA编写出一个简单的日历 4、如何用JAVA…

    编程 2024-10-03

发表回复

登录后才能评论