JNDI和LDAP学习笔记

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是为了Java程序访问命名服务和目录服务而提供的统一API。

  命名服务,说白了就是提供一个名称键值对的管理,即Key-Value对,Key代表一个资源的名称,Value代表资源的真实地址,命名服务允许大家通过唯一的名称找到对应的对象或资源。这样程序只需要知道某种资源的名称,就可以通过JNDI来访问到它,而不需要知道这个资源真实的物理地址。这有点类似于DNS服务,DNS服务将域名解析成IP地址,这样大家只需要在浏览器中输入网站的唯一名称(即域名)就可以访问到该网站,而不需要记住这个网站真实的IP地址。

  目录服务,提供的也是一种公共资源的管理服务。目录服务是一种特殊类型的数据库,它按照一定的数据结构,比如树型结构,把各种公共资源组织并保存起来。这种特殊数据库与传统关系型数据库的区别在于,它对查询作了优化,其数据结构允许大家非常快速的找到想要的资源,即保障了一种快速查找能力,不过这种设计也牺牲了其他方面的效率,比如它的更新效率就要低得多。

  目录服务中管理的也是名称键值对,不过其键值是具有层次结构的,像一棵树,即通过一个名称或一个带层次结构的名称,你可以定位到一颗子树,而不只是一个属性。由此可见,目录服务将命名服务的概念进一步引申为提供具有层次结构的信息库。一个目录服务通常拥有一个命名服务,但是一个命名服务不必具有一个目录服务。

  目前,有许多不同厂商提供目录服务产品如NIS、NDS、Active Directory、或者完全的LDAP目录服务,类似于不同数据库厂商的数据库产品,这些目录服务产品的实现是不一样的,各有各的特点。但他们的前端访问都支持LDAP协议。

  LDAP(lightweight directory access protocol,轻量级目录访问协议)是在20世纪90年代早期作为标准目录协议进行开发的。它是目前最流行的目录协议,与厂商、具体平台无关。LDAP用统一的方式定义了如何访问目录服务中的内容,比如增加、修改、删除一个条目。每个具体的目录服务厂商都会向外界提供LDAP协议访问本产品的接口,这样,我们只需要统一关心如何使用LDAP协议就可以了。

  JNDI则是Java中用于访问LDAP的API,开发人员使用JNDI完成与LDAP服务器之间的通信,即用JNDI来访问LDAP,而不需要和具体的目录服务产品特性打交道。这样通过LDAP、JNDI两层抽象,使Java程序对目录服务的访问做到了平台无关性。

  JNDI API是J2SE中的标准API,是通用的API。JNDI中包括5个包:javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi。

  常用的JNDI操作有:bind,unbind,lookup,rename,NamingEnumeration listBindings,NamingEnumeration list。

  使用JNDI来访问命名服务或目录服务,操作步骤如下:

  1、建立一个HashTable,包含定义所希望使用的JNDI服务的属性,所希望连接的LDAP服务器IP地址以及端口;

  2、将与认证成用户登录有关的任何信息添加到散列表中;

  3、创建初始context对象。如果访问命名服务,则使用InitialContext类,如果访问目录服务,则要使用InitialDirContext类;

  4、使用刚才得到的context对象执行所需的操作,如添加新的条目或者搜索条目;

  5、完成操作后关闭context对象。
使用JNDI实现对LDAP的访问与管理 轻量级目录访问协议(LDAP)是一种网络协议,用于访问和维护分布式目录信息服务。目录信息不同于数据库中的表格数据,它通常包含具有层次结构的属性。在企业IT环境中,这些属性可能包括员工信息、用户账户、资源信息等。LDAP协议是X.500标准的简化版本,专注于读取性能,这意味着它在查找和检索信息方面表现尤为出色。LDAP的实现通常是只读的,不过许多现代LDAP服务器实现了更新功能。核心概念包括:目录树(Directory Tree):LDAP数据存储在树形结构的目录中,顶层被称为根目录。 阅读详情

相关推荐

JNDI访问LDAP

NULL 博文链接:https://zzqrj.iteye.com/blog/1279219

JNDI的使用

 Java命名和目录接口(the Java naming and directory interface,JNDI)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得读者可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。  命名或目录服务使读者可以集中存储共有信息,这一点在网络应用中是非常重要的,因为这使得这样的应用更协调、更

Mr. David 专栏 6878

封装jndi操作ldap服务器的工具类

主要介绍了封装JNDI操作LDAP服务器的工具类,使用者只需要会使用List,Map 数据结构,大家参考使用吧

java jndi ldap_浅谈ldap以及jndi

现在很多企业中都会用到LDAP,一个常见的例子,假如一个大型企业,有很多linux服务器,企业员工可以登录到这些linux服务器中做开发以及测试,但员工是否需要每台linux服务器都需要一个帐号,还是所有linux服务器公用一个帐号呢? 还有一种情况,假如企业内容有很多用户管理系统,比如绩效系统,请假系统,办公系统等等,那么员工在使用这些系统时是否可以共用一个统一的帐号呢? 这两种情况的答案是...

weixin_39787606的博客 453

华为eNSP实战:手把手教你配置DHCP全局地址池(含AP固定IP分配)

本文通过华为eNSP模拟器,详细演示了如何配置DHCP全局地址池,为不同业务VLAN动态分配IP地址,并重点讲解了如何通过MAC地址绑定为接入点(AP)分配固定IP。文章涵盖了从拓扑设计、基础网络搭建到地址池精细配置、验证测试及常见故障排查的全流程,是网络工程师掌握企业级DHCP部署与AP管理的实用指南。

weixin_29235923的博客 600

Synopsys Sentaurus TCAD新手教程:从零开始仿真trench MOSFET(附完整代码解析)

本文提供Synopsys Sentaurus TCAD新手教程,详细讲解从零开始仿真trench MOSFET的全过程,包括环境搭建、外延生长、沟槽刻蚀、栅极形成等关键步骤,并附完整代码解析。通过实际案例帮助半导体工程师掌握Sprocess操作技巧,优化工艺参数设置,提升仿真效率。

weixin_30505225的博客 223

连接ldap_JNDI之初探 LDAP

这是酒仙桥六号部队的第27篇文章。全文共计2890个字,预计阅读时长10分钟。基础知识在进入JNDI中LDAP学习前,先了解下其中涉及的相关知识。1JAVA模型序列化对象JNDI ReferencesJNDI References是类javax.naming.Reference的Java对象。它由有关所引用对象的类信息和地址的有序列表组成。Reference还包含有助于创建引用所...

weixin_42122306的博客 9018

用Python实现四叉树(quad tree)

import numpy as np #正方形类 class square: #lx、ly为左上角坐标(x对应行号,y对应列号),rx、ry为右下角坐标 def __init__(self,lx,ly,rx,ry): self.lx=lx self.ly=ly self.rx=rx self.ry=ry #检查该矩阵中是否满足条件 #参数:原矩阵,阈值 #返回值:布尔类型 def check(s

weixin_44164489的博客 5868

java jndi ldap_JNDI和LDAP学习笔记

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是为了Java程序访问命名服务和目录服务而提供的统一API。命名服务,说白了就是提供一个名称键值对的管理,即Key-Value对,Key代表一个资源的名称,Value代表资源的真实地址,命名服务允许大家通过唯一的名称找到对应的对象或资源。这样程序只需要知道某种资源的名称,就可以通过JNDI来访...

weixin_36435766的博客 398

【新华三】DHCP+TFTP+ZTP自动开局实战

设备运行ZTP功能,可以自动获取并自动加载开局文件,实现设备的免现场配置和部署,从而降低人力成本,提升部署效率。使用TFTP服务器工具进行文件的上传和下载,网上很多TFTP server软件,大家可以自行下载。3CDaemon等,可以根据使用自取所需。大家应该都了解ZTP,但是目前发现除了控制器之外仅使用ZTP开局的兄弟并不是很多,因此分享此过程方便大家批量开局,留出更多时间学习更多技术。电脑打开DHCP服务器,TFTP服务器,并通过网线连接到设备的管理口,若设备较多可以通过带外交换机等进行连接,

五大连池的镜子 4983

泛微OA自定义post接口和路径(无侵入)

泛微OA自定义post接口和路径(无侵入)

技术分享 3877

JNDI學習筆記

[转载自:http://www.lslnet.com/linux/f/docs1/i15/big5174174.htm] http://java.sun.com/products/jndi/downloads/index.html http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downl

罗罗的专栏 986

无人机威胁检测(Hostile Drone Detection)——基于YOLOv10与UI界面的实现

Anti-UAV数据集由多种场景下的无人机视频与图片组成,包含无人机目标的多样化姿态、背景、光照变化,专门用于反无人机检测研究。YOLO(You Only Look Once)系列是当前流行的实时目标检测算法,具有速度快、精度高的特点。网络结构优化:更深更轻的主干网络,提升特征提取能力。检测头改进:多尺度特征融合,更好检测小型目标如无人机。训练技巧:使用自动混合精度训练(AMP)、数据增强、标签平滑等技术。

YOLO 231

JNDI学习笔记

JNDI学习笔记(一) http://www.chinaunix.net 作者:镖师甲  发表于:2006-06-16 18:14:54 【发表评论】【查看原文】【Java讨论区】【关闭】 由于工作需要学习了一天的JNDI有一些收获,写下来与大家分享.高手可以帮忙纠正和指点,在此谢过!  一:   几个概念,Contex

chenguibing的专栏 634

PyTorch深度学习实战(41)——循环神经网络与长短期记忆网络

循环神经网络 (Recurrent Neural Network, RNN) 通过将前一个时间步的隐藏状态作为当前时间步的输入,实现对序列数据的建模,由于循环连接的存在,RNN 能够捕获时间依赖关系,然而,RNN 在处理长期依赖性问题时会遇到困难。为了解决这个问题,提出了 LSTM,通过引入门控机制改进 RNN 来有效地处理长期依赖关系。在本节中,了解了 LSTM 和 RNN 的基本原理,并介绍了如何在 PyTorch 中实现 LSTM。

盼小辉丶的博客 1万+

这个AI工具可以把产品说明书转成演示视频,老板狂喜

回顾本文,我们从“传统视频制作的痛点”出发,拆解了AI将产品说明书转为视频的核心技术(NLP文本理解→CV画面生成→视频合成),并提供了3类工具实操方案(SaaS/开源/API)。推广成本降80%,制作效率提90%,产品迭代与推广终于能“同频”;摆脱对专业团队的依赖,自己就能快速产出高质量视频;对技术爱好者来说,这是一个“AI多模态融合”的绝佳实践案例(NLP+CV+语音合成的综合应用)。今天就找一份产品说明书,用HeyGen或Pictory试做一个视频。

AIGC应用创新大全的博客 324

JNDI注入(RMI攻击实现和LDAP攻击实现)

0x01 JNDI 概述 JNDI是Java Naming and Directory Interface(JAVA命名和目录接口)的英文简写,它是为JAVA应用程序提供命名和目录访问服务的API(Application Programing Interface,应用程序编程接口) 简单一点理解就是:JNDI的做法,就是定义一个数据源,与系统外部的资源的引用 都可以通过JNDI定义和引用 JNDI可访问的现有的目录及服务有: DNS、XNam 、Novell目录服务、LDAP(Lightweight Dir

weixin_45682070的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

log4j漏洞成因和原理(JNDI和LDAP)

转载出处:https://mp.weixin.qq.com/s/4MnOQGg7LBYCUE7BuuGfEQ log4j2 不管是什么编程语言,不管是前端后端还是客户端,对打日志都不会陌生。 通过日志,可以帮助我们了解程序的运行情况,排查程序运行中出现的问题。 在Java技术栈中,用的比较多的日志输出框架主要是log4j2和logback。 今天讨论的主角就是log4j2。 我们经常会在日志中输出一些变量,比如: logger.info("client ip: {}", clientIp) 现在思考一个问

Koikoi12的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

JNDI和LDAP:由 Log4j 注入漏洞引出的概念

认真研究Log4j 远程代码注入漏洞产生的原因,其中就遇到了JNDI 和 LDAP 的概念,花了一会功夫总结一下

Java Punk 2384

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

JNDI操作LDAP实现(一)

Java命名和目录接口(the Java naming and directory interface,JNDI)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得读者可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。   命名或目录服务使读者可以集中存储共有信息,这一点在网络应用中是非常重要的,因为这使得这样的应用更协调、更容

xiaoli 4517

《JDK 8u191之后的JNDI注入(LDAP)》学习

参考: 8u191之后的JNDI注入(LDAP) JNDI注入,即某代码中存在JDNI的string可控的情况,可构造恶意RMI或者LDAP服务端,导致远程任意类被加载,造成任意代码执行。 JNDI注入中RMI和LDAP与JDK版本的关系,参考这张图: 来源: https://xz.aliyun.com/t/6633 RMI + JNDI Reference利用方式: JDK 6u132, JD...

公众号shadow sock7 5650

JNDI操作LDAP实现(三)

JNDI定义了一个Serializable接口类来为应用信息的表达提供一种统一的方式。Serializable接口类包含了诸如地址、类型信息等用于访问具体对象的信息。为了能将对象的引用绑定到目录树中,该对象的类必须实现Referenceable接口,其中包含了方法 getReference()。开发者可以在该对象上调用getReference()方法来获得Reference以用于绑定。Serial

xiaoli 2919

JNDI 与 LDAP

JNDI 与 LDAP 对于众多接口服务、协议、互联网名称,总会遇到感到熟悉,但是时间一长就会忘记,所以还是要自己整理一下,加强记忆,当然最好的方式还是动手实践。 JNDI : 全称:JAVA NAMING AND Directory interface 解释:java 命名目录访问接口:java 命名服务和目录服务而提供的统一API。 理解:通过命名来访问需要的资源,类似DNS服务,可通过 key-value的形式。 LDAP : 全称:LIGHTWEIGHT DIRECTORY ACCESS Proto

qq_42918433的博客 1419
上一篇: Java代码构建一个线程池
下一篇: struts2常量
dev_J2EE
博客等级 码龄18年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值