写道
看了JNDI的实现,我感有点惊讶和一点迷惑,惊讶的是系统编程比应用编程就难度来说还真不好说,比如就象实现JNDI,SUN已经定好了Interface,你要做的就是弄清楚整个功能的原理,然后去实现他,然而应用编程则没有人为你定好Interface,你只能根据需求分析自己定好Interface,自己定好框架,但是这个框架能不能满足需求那就不好说了,但是SUN定的规范可是肯定可以实现功能的,并且一般情况下你必须全部实现接口中的每一个函数,要不然,人家说你又不符合他的规范,不能通过他的认证。好了下面我讲讲我读JNDI的经过。
JNDI的规范我大概的看了一下,大概知道了JNDI是干什么用的,实际上我的理解就是JNDI是一种服务,什么样的服务呢 ,就是你给我一个字符串,我就给出对应字符串所对应的对象。那这东西有什么用呢?那我们不是经常在客户端写代码的 时候不是经常写
Context ctx = new InitialContext();Object obj = ctx.lookup("/ejb/LotteryEJB");
这样类似的代码, 如果说"/ejb/LotteryEJB"是你刚才所说的字符串的话,那obj就应该是对应的对象,夷,这怎么好象有点象EJB的调用啊, 哈,哥哥你真是冰雪聪明,这就是EJB调用开始的时候调用JNDI服务的代码。原来就是这样啊,那实现这玩意不是太容易了, 弄一个HashMap的实例hm,把你要部署的字符和对象通过hm.put("/cs",对象)放进去,如果谁要查的时候就是把要查的字符 传过来,Object cs = hm.get("/cs"),CS就是要你要找的对象。CS?好啊,AK,M4,暴头....,我想暴头想了很久了,但是 这CS到底是我要暴头的人,还是和我一起暴头的人,还是已被我暴头的人呢?哈,告诉你吧,都是。根据JNDI的规范,这CS可以代表 对象,设备都可以,当然只要你愿意连MM都可以代表,真的,哪里有啊!我机子上好多啊---100多M的美女图片,哦我差点忘了, 文件也可以是JNDI服务所返回的东东。对了要是你问我MM图片怎么传到你的机子上面去,我只能告诉你,你可以通过socket传啊, 你传一个"/cs",我回传一个cs给你,就这么简单。
好了,如果到目前为止你只对我的100M图片感兴趣的话呢,那你就不要往下看了, 你给我发E-MAIL,我告诉你哪里还有好多。 org.huihoo.jfox.jndi下面的ContextImpl是实现Context接口,但是很这个类不是实现真正JNDI功能的类,真正实现该功能就是NamingServiceImpl类,NamingService不是SUN规范所规定的接口,但是他的函数和Context接口差不多,也就是说完成的是和 Context接口的功能差不多。也就是说NamingServiceImpl才是JNDI服务的提供者,而Context是客户端去调用JNDI服务的接口,那提起 服务的实现那大家都自然都想起了多线程,就想起了一个孤独的socket的实例fox在不停的listen,listen啊,但是他怎么等不到 "我要嫁给你"的字符串!fox不止一次的怀疑自己的实现的Runnable接口是否为倒版,并且还怀疑对方是不是找对了IP而发错了端口。 所以说为了能更好提供JNDI服务,NamingServiceImpl决定把自己交给ServiceWrapper包装一下,然后再对外发布,要知道ServiceWrapper 专门为守侯线程所设计,面对各种各样的的请求,都能抓住处理掉,并且面对各种请求都能一一满足。现在我只希望ServiceWrapper能够 满足我一种请求那就是--有没有吃的,我好饿!有没有人请吃饭啊!我饿死了!
分享到:
相关推荐
标题中的"jndi-1_2_1.zip_jndi_jndi-1.2.1.jar"表明这是一个关于JNDI的版本1.2.1的开源软件包,其中包含了一个名为"jndi-1.2.1.jar"的JAR文件。这个JAR文件包含了JNDI库的所有实现,使得开发者可以在他们的Java项目...
"jndi-tool"是一个专门针对JNDI服务的利用工具,它可以被用来测试和利用JNDI相关的安全漏洞。此工具特别关注RMI和LDAP服务,这两种服务是JNDI常用的两种协议。RMI允许Java对象在不同的Java虚拟机之间进行远程调用,...
### Tomcat中JNDI原理详解 #### 一、引言 Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API。它为开发者提供了访问各种命名和目录服务(如DNS、LDAP等)的统一接口。在Tomcat...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种不同的命名和目录服务提供了统一的接口。在Java应用程序中,JNDI允许开发者查找和绑定对象,这些对象可以是数据源、...
《深入解析JNDI注入攻击与防御》 Java Naming and Directory Interface (JNDI) 是Java平台中用于访问各种命名和目录服务的API,它提供了一种统一的方式来查找和访问不同类型的网络资源,如数据库、对象、服务器等。...
在IT领域,特别是Java应用服务器环境下,JBoss与MySQL数据库的集成是常见需求之一,而JNDI(Java Naming and Directory Interface)在此过程中扮演着关键角色。本文将深入解析如何在JBoss中配置MySQL的JNDI数据源,...
### Spring 获取 WebLogic JNDI 数据源的两种方式 在Spring框架中,通过JNDI(Java Naming and Directory Interface)可以方便地访问WebLogic服务器中的数据源。这为应用程序提供了高度解耦的数据访问机制,使得...
java asm jndi_JNDI-Injection-Exploit,用于log4j2漏洞验证 可执行程序为jar包,在命令行中运行以下命令: $ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address] 其中: -C ...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。JNDI允许Java应用程序查找和操作各种类型的资源,如数据源、对象服务、邮件服务器等,而无需知道这些资源的具体实现细节...
在Java应用中,JNDI(Java Naming and Directory Interface)是一种标准的接口,它允许应用程序查找和使用资源,如数据源(DataSource),而无需直接在代码中硬编码这些资源的位置或配置信息。JNDI的核心理念是将...
**标题:“JNDI示例整合SSH”** 在IT领域,`JNDI`(Java Naming and Directory Interface)是Java平台提供的一种标准接口,用于访问命名和目录服务。它允许应用程序查找和操作不同类型的网络资源,如数据源、EJB等...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它允许程序查找和操作各种命名和目录服务,如 Lightweight Directory Access Protocol (LDAP)、Java Database Connectivity ...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。它提供了一种标准的方法来查找和绑定数据,这些数据可以是对象引用、配置信息或者其他资源。JNDI通常与Java应用程序...
# JNDI-Inject-Exploit ## 免责声明 本工具仅面向**合法授权的企业安全测试**,如您需测试本工具的可用性请自行搭建靶机环境,在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的...
**Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的一组API。它提供了一个统一的接口来查找、访问和管理分布式系统中的资源,如数据库连接池、邮件服务器、对象服务等。JNDI的核心...
JNDI是一个接口,提供了一种标准的方式来访问命名和目录服务,而LDAP则是一种网络协议,常用于存储和查询用户账户、组信息、配置数据等结构化信息。 JNDI的主要作用是将Java应用程序与各种不同的命名和目录服务连接...
**JNDI(Java Naming and Directory Interface)数据库查询例子** JNDI是Java平台中用于查找和绑定资源的接口,它允许程序通过名称查找数据源、对象服务等。在Java应用中,特别是企业级Java应用中,JNDI被广泛用于...
### JNDI配置在Tomcat中的详细介绍 JNDI(Java Naming and Directory Interface)是Java平台的一个标准接口,用于访问命名和目录服务。在企业级应用中,JNDI常被用于查找和引用各种资源,如数据库连接、消息队列等...