首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tomcat配置JNDI数据源

本文将介绍Tomcat配置JNDI数据源的方法,主要分为配置局部数据源(仅供单个应用使用)和全局数据源(所有用该Tomcat的应用都可以使用) 一、思考 从我们学习Web开发以来,我们都是通过程序代码来实现数据库的访问的...从一开始直接将数据库配置信息写在代码中,到后来将配置信息抽取出来写在了Properties文件中,我们访问数据库的代码更加精简。...而通过JNDI方式访问数据库则更为直接,JNDI连接数据库的方式直接将数据库信息放在Tomcat中,而项目代码里直接通过JNDI技术就可以得到数据源。...应该说,JNDI方式配置数据源将项目代码与实施部署分离开来了,有利于开发人员和实施部署人员各司其职。...三、测试 1、第三步所写的任一种方式配置好数据源。 2、配置完数据源之后,你还要把对应的数据库驱动文件放在项目的lib目录或者tomcat的lib目录下。

1.9K90
您找到你想要的搜索结果了吗?
是的
没有找到

JNDI:如同胶水

上篇文章写的关于tomcat数据库连接池的配置。在对连接池就行操作的时候使用到了传说中的JNDI技术。   正所谓“不想了解其运行机制的程序员不是好的架构师”,因此带着疑问对JNDI进行了勘察。   ...时候大家的想法其实和大家在刚开始学JDBC连接使用配置文件配置数据库连接字符串(即jdbc URL)一样,其目的都是为了灵活。   ...配置连接字符串到配置文件是为了访问不同的数据库,而使用JNDI的结果就是可以灵活使用组件或者说成是资源才会更好一下,通过配置相应文件,就可以将其他资源通过JNDI沾到项目中去。   ...还是推荐大家看一下我上篇文章最后给的那个链接,IBM文档库,还是比较给力的 —EOF— 补充:关于JNDI的分布式参看这里:http://www.xasxt.com/index.php/article/...jiaocheng/shipin_1076.html JNDI全攻略(一):http://www.cnblogs.com/chinafine/archive/2010/06/16/1759246.html

47420

Java安全之JNDI注入

从设计上,JNDI 独立于具体的目录服务实现,因此可以针对不同的目录服务提供统一的操作接口。JNDI 架构上主要包含两个部分,即 Java 的应用层接口(API)和 SPI。...RMI rmi:// com.sun.jndi.url.rmi.rmiURLContext LDAP ldap:// com.sun.jndi.url.ldap.ldapURLContext LDAP...ldaps:// com.sun.jndi.url.ldaps.ldapsURLContextFactory IIOP iiop:// com.sun.jndi.url.iiop.iiopURLContext...JNDI+LDAP ldap的属性值中可以被用来存储Java对象,通过Java序列化,或者 JNDI Reference 来存储。...详细可以参考 如何绕过高版本 JDK 的限制进行 JNDI 注入利用 | KINGX 探索高版本 JDK 下 JNDI 漏洞的利用方法 | 浅蓝 最后 JNDI 注入的漏洞的关键在于动态协议切换导致请求了攻击者控制的目录服务

32030

JNDI与RMI、LDAP

---- Concepts of JNDI JNDI 全名 Java Naming and Directory Interface,实际上简单来说就是一个接口,应用通过该接口来访问对应的目录服务。...JNDI到底是什么,实际上是java的一个api,通过JNDI可以对不同的目录系统做操作,将不同的目录系统(如RMI和LDAP)放入统一的一个接口中方便使用,其整体架构可看oracle官方文档[2]中给的图...,而我们的payload需要修改的地方仅仅只有协议头,同理对于CORBA有如: iiop://127.0.0.1:1099/evil 不过CORBA的利用需要SecurityManager启用,且需要配置规则...与常规的rmi实现不同的是此处我们操作的是Reference对象而非直接对远程类对象做操作,这样就是JNDI对于RMI或者说是SPI层下的实现,通过返回Reference的方式,由JNDI统一去加载指定的地址上的...总结 在JNDI注入中 就RMI而言: 在JDK8u113以及JDK6u132, JDK7u122版本以下,可以使用JNDI + RMI lookup Reference的利用方式。

1.2K40

Tomcat-9.JNDI资源

对将通过JNDI的InitialContext方法暴露给web应用的环境项的名称与数值加以配置(等同于web应用部署描述文件中包含了一个元素)。...使用资源 在web应用最初部署时候,就配置InitialContext,使其可以被web应用的各组件所访问(只读访问)。 JNDI命名空间的java:comp/env部分中包含着所有的配置项与资源。...无论何时,只需要请求并接受预配置的会话即可。 6.3.1 声明资源需求 修改web应用的部署描述文件(/WEB-INF/web.xml)声明JNDI名称以便借此查找预配置会话。...6.4.2 声明资源需求 修改web应用的部署描述文件(/WEB-INF/web.xml),声明JNDI名称以便借此查找预配置的数据源。...6.4.1 编写资源工厂类 需要编写一个类来实现JNDI服务提供者javax.naming.spi.ObjectFactory接口。

1.1K30

深入理解JAVA中的JNDI注入

比如可以利用JNDI在局域网上定位一台打印机,也可以用JNDI来定位数据库服务或一个远程Java对象。JNDI底层支持RMI远程对象,RMI注册的服务可以通过JNDI接口来访问和调用。...JNDI支持多种命名和目录提供程序(Naming and Directory Providers),RMI注册表服务提供程序(RMI Registry Service Provider)允许通过JNDI...其中前两行代码主要用于解除安全限制 在RMI服务中引用远程对象将受本地Java环境限制即本地的java.rmi.server.useCodebaseOnly配置必须为false(允许加载远程对象),如果该值为...除此之外被引用的ObjectFactory对象还将受到com.sun.jndi.rmi.object.trustURLCodebase配置限制,如果该值为false(不信任远程引用对象)一样无法调用远程的引用对象...JDK 5 U45,JDK 6 U45,JDK 7u21,JDK 8u121开始java.rmi.server.useCodebaseOnly默认配置已经改为了true。

2.1K40

老公,JNDI注入是什么呀?

public class CallService { public static void main(String[] args) throws Exception{ //配置...如果没有配置这些信息,会出现NoInitialContextException异常 Properties env = new Properties(); env.put(...由于上面的代码将服务端与客户端写到了一起,所以看着不那么清晰,我看到很多文章里吧JNDI工厂初始化这一步操作划分到了服务端,我觉得是错误的,配置jndi工厂与jndi的url和端口应该是客户端的事情。...ps:可以对比一下前几章的rmi demo与这里的jndi demo访问远程对象的区别,加深理解 0x04 JNDI动态协议转换 我们上面的demo提前配置jndi的初始化环境,还配置了Context.PROVIDER_URL...其实就是说即使提前配置了Context.PROVIDERURL属性,当我们调用lookup()方法时,如果lookup方法的参数像demo中那样是一个uri地址,那么客户端就会去lookup()方法参数指定的

1.2K21
领券