JAVA操作LDAP有几种方法,这里主要介绍的是JNDI包,就是它:

com.sun.jndi.ldap.LdapCtxFactory

LDAP默认情况下使用的是BDB数据库,所以呢,操作LDAP就和操作数据库一样,要分几步走:

1、先导入所需的包,如下:

import java.util.ArrayList;

import java.util.Hashtable;

import javax.naming.Context;

import javax.naming.NamingEnumeration;

import javax.naming.directory.Attribute;

import javax.naming.directory.BasicAttribute;

import javax.naming.directory.BasicAttributes;

import javax.naming.directory.InitialDirContext;

import javax.naming.directory.DirContext;

import javax.naming.directory.Attributes;

import javax.naming.directory.ModificationItem;

import javax.naming.directory.SearchResult;

import javax.naming.NamingException;

import com.sun.net.ssl.internal.ssl.Debug;

2、连接LDAP,得到连接对象,如下:

DirContext ctx = null; //这个就是LDAP的连接对象

Hashtable env = new Hashtable(); //定义一个哈希表来存连接信息

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

env.put(Context.PROVIDER_URL, ldap://192.168.0.1:389); //LDAP的地址,要根据LDAP服务器IP进行修改,389是LDAP的默认端口

env.put(Context.SECURITY_AUTHENTICATION, "simple"); //这个是默认授权类型,一般不用改

env.put(Context.SECURITY_PRINCIPAL, ""); //LDAP的账户名,一般是这样的格式:dc=cs,dc=hunan,dc=com ,根据LDAP的配置情况来

env.put(Context.SECURITY_CREDENTIALS, "123456"); //对应上面账户的密码

try

{

ctx = new InitialDirContext(env); //初始化LDAP连接,连接成功后就可以用ctx来操作LDAP了

}

catch(NamingException e)

{

e.printStackTrace();

}

这里建议大家把以上的代码写成一个函数,返回DirContext 这个对象,方便使用。

转载自:http://blog.sina.com.cn/s/blog_4da69d9a0100ja75.html

java对接ldap_如何使用Java操作LDAP之LDAP连接(一)相关推荐

  1. 免费电子面单Api_快递鸟接口JAVA对接调用案例

    电子面单是一种通过热敏纸打印输出纸质物流面单的物流服务.通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍.电子面单以接口形式嵌入到自己的系统.网站上,可以在自己的平台操作打印电子面单. 一. ...

  2. Java对接AD/LDAP的常见错误,以及解决办法

    1.[LDAP: error code 34 - 00000057: LdapErr: DSID-0C090B60, comment: Error processing name, data 0, v ...

  3. JAVA对接支付宝支付(超详细,一看就懂)

    Java对接支付宝支付 更多内容 冷文博客: 传送门 引入 为什么要发这篇帖子呢?原因很简单,就是因为在一个稍稍正规一点的应用上都会有支付这个环节,我们日常的在线支付如今包括支付宝,微信钱包,QQ钱包 ...

  4. java对接支付宝支付

    java对接支付宝支付演示 现在有不少的项目都需要对接支付,这里主要是进行讲解对接支付宝H5支付 废话不多说 上代码 引入支付宝官方的sdk <!-- https://mvnrepository ...

  5. Java对接JeePay支付、转账实现以及回调函数

    最近公司对接了第三方支付平台JeePay,看到网上文章比较少,给大家发一篇对接微信支付的吧,支付宝也一样,更换里面的参数即可,官方文档地址:系统介绍 - 计全文档,具体的服务需要大家去搭建,并创建里面 ...

  6. Java对接第三方支付渠道之支付宝支付

    提示:支付宝相对于微信支付更人性化,且细节做得更好. Java对接第三方支付渠道之支付宝支付 一.前期准备工作 二.导入依赖 三.书写配置类 四.书写配置文件 五.调用相关支付接口 1.流程图 2.创 ...

  7. Java对接微信支付(完整全流程)

    Java对接微信支付及支付回调通知的全流程 一.所用框架.对接微信支付我们技术组用的是payment框架,因为该框架已整合springboot因此很方便快捷 <dependency>< ...

  8. Java对接ansible自动运维化平台

    Java对接ansible自动运维化平台实现文件采集分发 经过大量查阅,网上使用Java对接ansible自动运维化平台的示例代码几乎没有,为了方便自己后期巩固以及有需要的小伙伴,特以记录!!! 此次 ...

  9. java对接PayPal支付(v2)

    java对接PayPal支付 我们公司最近开通了网上支付功能,国内选择对接支付宝和微信,国外选择对接paypal, 今天我先将paypal对接方式记录下来,后面会记录微信和支付宝(本人比较懒,微信和支 ...

最新文章

  1. R语言进行数据聚合统计(Aggregating transforms)计算滑动窗口统计值(Window Statistics):使用R原生方法、data.table、dplyr等方案、计算滑动分组统计
  2. linux 内核互斥体,Linux 内核同步(六):互斥体(mutex)
  3. HTMLCSS学习笔记(四)----浮动原理及清浮动
  4. May 18:PHP 用到的学习工具
  5. 论文盘点:ICCV 2019 Top 20,MobileNetV3居首!
  6. C++ 多态的实现及原理
  7. AjaxControltoolkit学习笔记—PopupControl 使用详解
  8. 2021-11-24 摘抄:软件产品的一些功能和性能指标
  9. 如何创建git账户的chroot
  10. 分享180个动态模板PPT模板,总有一款适合你
  11. 例题(15.6) 细菌实验分组
  12. 09.CSS3渐变、过渡、转换、动画
  13. Flutter FloatingActionButton 及仿闲鱼的发布按钮
  14. 熤星传媒:抖音这些方面要注意!
  15. 经典S Q L语句大全
  16. java 制作pdf模板,Java-pdf模板制作流程-使用pdf 模板生成pdf文件
  17. 《用事实说话》阅读心得
  18. 一维参照物的摄像机定标
  19. 图片内容巴特勒 (隐藏文字到图片)
  20. Java小白学习二十八——冒泡排序

热门文章

  1. 框架下cookie的使用_为什么自动化运维系统越来越多使用都RESTful API?
  2. Http / Get 和 Post 区别
  3. 氨氮吹脱法脱与php有关系吗,吹脱法处理氨氮废水的原理及优缺点分析
  4. mysql 性能日志_Mysql系列(十一)—— 性能分析慢查询日志
  5. Arduino--0.91寸OLED液晶屏
  6. YaoCCAD软件中设置坐标原点
  7. php浏览器类型检测工具,php检测客户端浏览器类型的简单示例
  8. python修改excel后打印_python 处理excel并打印excel
  9. 「微信小程序免费辅导教程」24,基础内容组件icon的使用探索与7月26日微信公众平台的更新解读...
  10. Linux 下比较文件内容并相同部分、不同部分