本教程将向您展示如何编写Java代码以与LDAP交互。 但是在执行此操作之前,我们需要在计算机上设置LDAP服务器和客户端。

如果此时您不确定到底是什么LDAP,建议您参考这篇文章,其中提供了一个很好的定义示例。 (简而言之,有助于将LDAP服务器视为专门的数据库)。

安装LDAP服务器

我在MBP上运行。 环顾了一会后,我发现最容易安装的LDAP服务器是ApacheDirectory,您可以从此处下载。 (安装和启动服务器应少于5分钟)

安装完成后,它将自动启动守护程序。 然后,您可以使用此命令运行服务器。

sudo launchctl start org.apache.directory.server

有关更多安装说明,请参见此处 。

LDAP客户端

您将要查看LDAP服务器的内容。 最容易安装的LDAP客户端是Apache Directory Studio,可以从此处下载。

下载完成后,您需要创建与服务器的连接- 此处包含有关说明。

连接后,Apache Directory Studio应该如下所示:

现在可以从Java程序访问LDAP。 向您展示如何执行此操作的最佳方法是通过示例程序。 该程序将执行以下任务:

  • 创建一个新的LDAP对象
  • 查看LDAP对象
  • 将新属性添加到LDAP对象
  • 修改LDAP对象上的属性
  • 删除LDAP对象上的属性
  • 删除LDAP对象

注意:此类在其自身之后进行清除,即它将LDAP Server保留在其被发现的状态。 如果要查看正在执行的各种任务,只需运行其中一项任务,然后通过LDAP客户端查看LDAP对象。 不要忘记,您可以在LDAP客户端中修改对象并进行测试。

package test;import java.util.Properties;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.*;public class LDAPTest {public void run() {try {DirContext context = getContext();String name = "employeeNumber=00001,ou=system";createLDAPObject(context, name);createAttribute(context, name, "displayName", "JOBS");viewAttribute(context, name, "displayName");updateAttribute(context, name, "displayName", "STEVE");viewAttribute(context, name, "displayName");removeAttribute(context, name, "displayName");removeLDAPObject(context, name);} catch (NamingException e) {e.printStackTrace();}}private void removeLDAPObject(DirContext context, String name) throws NamingException {context.destroySubcontext(name);}private void createLDAPObject(DirContext context, String name) throws NamingException {Attributes attributes = new BasicAttributes();Attribute attribute = new BasicAttribute("objectClass");attribute.add("inetOrgPerson");attributes.put(attribute);Attribute sn = new BasicAttribute("sn");sn.add("Steve");attributes.put(sn);Attribute cn = new BasicAttribute("cn");cn.add("Jobs");attributes.put(cn);attributes.put("telephoneNumber", "123456");context.createSubcontext(name, attributes);}private void removeAttribute(DirContext context, String name , String attrName) throws NamingException {Attribute attribute = new BasicAttribute(attrName);ModificationItem[] item = new ModificationItem[1];item[0] = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void createAttribute(DirContext context, String name , String attrName, Object attrValue) throws NamingException {Attribute attribute = new BasicAttribute(attrName, attrValue);ModificationItem[] item = new ModificationItem[1];item[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void updateAttribute(DirContext context, String name , String attrName, Object attrValue) throws NamingException {Attribute attribute = new BasicAttribute(attrName, attrValue);ModificationItem[] item = new ModificationItem[1];item[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, attribute);context.modifyAttributes(name, item);}private void viewAttribute(DirContext context, String name , String attrName) throws NamingException {Attributes attrs = context.getAttributes(name);System.out.println(attrName + ":" + attrs.get(attrName).get());}private DirContext getContext() throws NamingException {Properties properties = new Properties();properties.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");properties.put(Context.PROVIDER_URL, "ldap://localhost:10389");return new InitialDirContext(properties);}public static void main(String[] args) {new LDAPTest().run();}
}

该代码在下面,应该可以自我解释。

翻译自: https://www.javacodegeeks.com/2015/09/java-to-ldap-tutorial-including-how-to-install-an-ldap-server-client.html

Java到LDAP教程(包括如何安装LDAP服务器/客户端)相关推荐

  1. PVE系列教程(十七)、安装Redis服务器

    PVE系列教程(十七).安装Redis服务器 为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一.前期准备 在PVE里安装好了ubuntu,并对 ...

  2. java实现ldap服务器_Java到LDAP教程(包括如何安装LDAP服务器/客户端)

    java实现ldap服务器 本教程将向您展示如何编写Java代码以与LDAP交互. 但是在执行此操作之前,我们需要在计算机上设置LDAP服务器和客户端. 如果此时您不确定到底是什么LDAP,建议您使用 ...

  3. Windowds10安装LDAP服务器和客户端及遇到问题的整理

    windows环境 OpenLDAPforWindows的安装 我是64位电脑,所以选择64位安装程序: 下载链接1: https://www.maxcrc.de/wp-content/uploads ...

  4. centos 6.5 配置LDAP服务器+客户端!

    各种度娘!各种歌哥!网上教程参差不齐,历时1天,终于完成,不敢独享,遂,总结分享之,有问题可以留言,知无不言...开始吧 Note: 本次配置的服务器环境是<redhat enterprise ...

  5. weblogic点击服务器没有信息,无法安装Weblogic服务器12C,jar文件甚至没有打开

    无法安装Weblogic服务器12C,jar文件甚至没有打开.试图以管理员的身份从命令提示符进行安装,最终导致错误无法访问jar文件.我已经安装了Java 7.请帮助无法安装Weblogic服务器12 ...

  6. LDAP第三天 MySQL+LDAP 安装

    https://www.easysoft.com/applications/openldap/back-sql-odbc.html      OpenLDAP 使用 SQLServer 和 Oracl ...

  7. ApacheDS安装 [ LDAP和Kerberos ] 配置

    . 一 .前言 二 .安装apacheDS 2.1. 执行安装脚本 2.2. 启动ApacheDS 2.3. 安装Apache Directory Studio 2.4. 配置连接 2.5. 设置分区 ...

  8. Docker安装LDAP并集成Springboot测试LDAP

    关于ldap这里不做介绍 一.Docker安装LDAP 1.安装openldap docker run \-d \-p 389:389 \-p 636:636 \-v /usr/local/ldap: ...

  9. centos7 ldap php,php7安装ldap扩展

    当前使用Centos7.x系统,php使用7.4版本,wlnmp一键包已支持该扩展 ldap扩展包含在php源码包中 1.安装所需依赖,如果在编译时还提示缺少其他依赖,请自行安装 yum instal ...

最新文章

  1. 创建数据库,指定数据库的字符集和编码顺序
  2. Office 365管理员指引 9 ——Lync 自定义会议邀请
  3. 在Android Studio中有六种依赖
  4. PDU知识全集,值得收藏!
  5. 转载 cglib代理和java代理
  6. GDCM:gdcm::Version的测试程序
  7. 特征提取——HOG方向梯直方图
  8. 数据结构探险——图篇
  9. php免费根据ip查城市,根据ip获取城市的方法
  10. java递归mysql生成树_java递归生成树结构的数据
  11. 虚函数指针(vptr)与虚函数表(vptb)
  12. Taskonomy: Disentangling Task Transfer Learning
  13. macOS设备上的照片导入Bridge
  14. 【Swing 3】布局管理器与简单的聊天界面
  15. 奎享添加自己字体_奎享雕刻软件写字操作简要说明
  16. android 第三方圆弧进度条,Android 圆弧进度条 水平进度条 水波进度条
  17. flyingsaucer转换多个html,用 flying saucer 生成pdf文件 Css及html的问题
  18. bootstrap table th内容太多表格撑破(自动换行)
  19. CTF-AWD入门手册
  20. acwing基础课——Dijkstra

热门文章

  1. Tomcat配置虚拟内存
  2. javaSE基础代码案例
  3. React中antd的按需引入+自定主题
  4. HBase出现java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration问题
  5. Android Bitmap OutOfMemory 解决办法
  6. mysql 删除过期日志_【转】对mysql日志进行操作的总结包括 启用,过期自动删除 等...
  7. hashmap存多少条数据_干货 | 面试官想问的HashMap,都在这一篇里面了!
  8. hash地址_一致性Hash在负载均衡中的应用
  9. jcache_随机JCache内容:多个提供程序和JMX Bean
  10. php 系统交互 删除文件_FileSystemMap:与文件系统交互的自然方法