当前位置: 首页 > news >正文

后台网站地图/网站建设网站推广

后台网站地图,网站建设网站推广,农村不起眼的商机,广州做营销型网站哪家好一、写在前面文章主要介绍了JNDI数据源配置和找回密码的方法,只叹范围太大只能写下冰山一角,如有错误还请指出。如需了解配置:Tomcat请看2.1,WebLogic请看2.2,WebSphere请看2.3。如需找回数据库连接、用户名和密码&…

一、写在前面

文章主要介绍了JNDI数据源配置和找回密码的方法,只叹范围太大只能写下冰山一角,如有错误还请指出。

如需了解配置:Tomcat请看2.1,WebLogic请看2.2,WebSphere请看2.3。

如需找回数据库连接、用户名和密码:Tomcat请看2.1,WebLogic请看3.1,WebSphere请看3.2。

二、JNDI数据源

JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。

JNDI数据源则是JNDI常见的应用形式,将数据源交由应用服务器托管不再由应用程序创建,只需在应用程序中设置正确的JNDI名称,即可进行数据操作。

三、常见应用服务器配置

2.1 Tomcat 8.5

Tomcat应是非常常见的Web应用容器,其配置的关键点包括文件:context.xml、server.xml、\conf\Catalina\{servername}{appname}.xml。({servername}指tomcat中应用的服务器名称,{appname}指tomcat中应用的名称。)

1)根据数据库类型,在{tomcat}\lib下放入对应数据库的jdbc包,我这里演示用的是mysql。({tomcat}指tomcat安装目录。)

92e65527d21aaf39f4c35db2d2280139.png

2)方法一:配置server.xml和context.xml。在{tomcat}\conf下编辑server.xml,在GlobalNamingResources中写入Resource配置

1b862ac3ad9a25af1f7542bbc6520f95.png

3)在context.xml中写配置,将servers中的配置引用

96e22b326950cc0604f1affdb076ff8e.png4)那接下来新建一个JavaWeb项目,由三个文件组成:index.jsp,web.xml,ConnExample.java。

index.jsp

JNDI测试页面");
int colcount = resultSet.getMetaData().getColumnCount();
out.print("ID用户名年龄");
while (resultSet.next()) {out.print("");for (int i = 1; i <= colcount; i++) {out.print("" + resultSet.getString(i) + "");}out.print("");
}
out.print("");
%>

web.xml

<?xml version="1.0" encoding="UTF-8"?>TMPindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspDB Connectionjdbc/examplejavax.sql.DataSourceContainer

ConnExample.java

package jdbc;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;public class ConnExample {public static ResultSet doSelect() throws NamingException, SQLException {Context context = new InitialContext();DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/example");Connection connection = dataSource.getConnection();Statement statement = connection.createStatement();String sql = "select * from users";ResultSet resultSet = statement.executeQuery(sql);return resultSet;}
}

5)组建项目,打包成war部署一下就好了。

2f81501f3c24f7a69af1c63299247077.png

6)方法二:当然还有更弱化的,就是直接在context.xml中写入配置即可。

f8f044eee8573135e3b004b3066f9034.png7)这样访问之前配置的应用即可使用。

2f81501f3c24f7a69af1c63299247077.png

8)方法三:之前的配置的作用域是全局作用域,只要是tomcat下的应用都可以访问对应的数据源配置。如果需要针对单个应用配置数据源,可以根据应用项目名称在目录{tomcat}\conf\Catalina{servername}下增加配置文件。比如我这个项目叫“JNDIDataSourceExample”,就新增文件JNDIDataSourceExample.xml。一一对应是必须的,不然找不到配置了。

ab88b3b390b6ae167df9ec7dceac5444.png9)在JNDIDataSourceExample中写入配置即可。

<?xml version="1.0" encoding="UTF-8"?>

277f19ea6084c9d757e9729146246826.png

10)这样访问之前配置的应用即可使用。

2f81501f3c24f7a69af1c63299247077.png

2.2 WebLogic 12c

WebLogic应是非常常见的Web应用容器,其配置的主要通过WebLogic控制台完成,比tomcat容易的得多。

1)登录控制台在服务里面找到数据源,然后新建一条一般数据源。

452beb42cdbf601f2cd21a049dfe4e1a.png2)配置数据源名称,JNDI名称,数据库类型。当然这里需要注意JNDI名称,这里是要应用程序的一致的呢,比如:web.xml中配置的JNDI名称

8e4b422cba55607ce4ad9c9c9af87aa4.png3)选择数据库驱动。这点吧对比WebSphere就能看出,同一体系的好处了,至少驱动有的。

7ddb91e8f10ab9bca4768548e476ae78.png4)后续的一些配置截图参考,可采用默认设置。当然,数据库名称、主机名、端口、数据库用户名、口令这个肯定要和需要被连接的数据库一致。

b1ad107608570886913f36d250b664a0.png6ee249bc2bbf9a6ce2b99bcf41811688.png0566f3b32ef4da777833a039dea9102a.png5)完成之后部署之前的war包即可使用。

24bf17d87878bf746991129943cdc0cb.png

2.3 WebSphere 8.5.5.14

WebSphere是非常常见的Web应用容器,其配置的主要通过WebSphere控制台完成,比weblogic复杂太多,以下是建议流程。

1)WebSphere没有自带mysql的jdbc,需要自己添加。我这里先拷贝放到{WebSphere}\lib。

8973d6554c66adca738c2bbffc3e3076.png2)登录控制台,首先先配置资源中JDBC的JDBC提供程序,新建一个JDBC提供程序。作用域可任选,不过不能是全部,毕竟全部并不是一个选项,会提示错误。

8e1dada2560168376f3bc14f2bad7889.png3)配置实现类名,这里就要到mysql的jdbc包中去找了,找含有名称DataSource或ConnectionPoolDataSource的类文件。其他的则是描述性质字段可自便。完整内容截图看下图第二张即可。695e1ed2011e5a110d7cfaa870817cac.png

713aa28c7a7de702fce96377fa25927f.png4)配置类的jar包路径,之前我放在lib下这里则图个方便,依靠环境变量${WAS_INSTALL_ROOT}获取WebSphere安装路径,然后再指向jar包。

1676d2ea2f2531d88b189ff1027f84bf.png5)核对下配置,没问题就可以完成了。

8552a278dbc6224bc5f68a76984afc91.png6)以上是第一个麻烦。接下来配置JDBC中的数据源,点击新建。作用域可任选。

a66c9d6fc5978c14904e6fa039a9e045.png7)配置数据源名和JNDI名称,重点是JNDI名称,需要与应用中引用的一致。

c164d5d11fd29d515b984d656ae1435d.png

8)选择刚才设置好的JDBC提供程序。

182bf85103906f24aa81142fdcab1f01.png

9)一路默认设置到完成

c3d7b7a4b4b5cfe0c7326077db6b50fa.pngf03a4632c4c74d9840012964fddf4638.pnga7f3a8e868274d49b0b12251678d0d22.png10)是的我咋没有配置数据库连接地址、数据库用户名、口令等呢?接下来就是了。进入之前新建的数据源配置。

4c50154a7797386e43440a81a652f99d.png

11)进入J2C认证数据。

bc2edc6e50ca83b0ab425de0672bf588.png12)新建一项

795147876326483259f04a3af4a1b094.png13)别名可自定义,用户标识和密码需要填写为数据库的用户名和密码。

8f6feba3d25148362d29c25d4622fb69.png14)确定之后,再次打开刚新建的数据源配置,选择右侧定制属性。

e2b677360b50399ca639a9fce027480f.png15)新建一条属性

be549afa83769658dbde255f6c6dc431.png16)名称为“url”,这个是固定的。值则是数据库地址,java一般是jdbc:mysql://开头。

1a181473c1af0e1c724668ed2467c606.png17)确定之后返回JNDI数据源配置,保存到主配置。点击测试连接,只要没有错误就OK,警告可以忽略。

f1358bbbfa2ae5d5de35f36c38edb76e.png

18)完成之后部署之前的war包即可使用。

438b52dbfa79789496796622aa6adc27.png

三、反向思考

以上三种配置,各位看官看还行?Tomcat上应该已经很透彻了,如果是Weblogic和Websphere要是某一天我进入不了控制台,又要找到数据库的配置,咋办???还请继续往下看。

3.1 WebLogic 12c

1)WebLogic当配置好JNDI数据源后,对应的配置会存放到域目录的config\jdbc下。(域目录由WebLogic由用户指定,安装或控制台皆可配置,我安装的时候直接无脑下一步自然就在这里了C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain)

30e20450693df095d3764c455ec8b507.png2)根据WebLogic控制台中配置的名称,在此处就会保存为对应名称的配置文件。上面配置案例是”example-jdbc”,所以文件名也就是example-jdbc.xml。打开配置文件查看配置内容,配置中包含数据库连接、数据库用户名、加密后的口令、JNDI名称。

2a2eb3e3ebda6011106034c84c4a2236.png3)既然是找回密码,那还需要解密一下密码才算完结。WebLogic的密码解密需要两个条件,一个是加密后的字符串,一个是域目录下security\SerializedSystemIni.dat文件。具备两者就可以进行解密了。解密工具地址:https://github.com/NetSPI/WebLogicPasswordDecryptor。(当然解密控制台密码也是可以的。)

b14b67b014b08fb294e17e7398f2539e.png

3.2 WebSphere 8.5.5.14

1)WebSphere稍稍麻烦点,大概就像前面配置一样麻烦。值得回顾一下之前在配置的时候有作用域的选项,不同的作用域配置,会导致数据库配置保存在不同的位置。庆幸的是文件名是固定的都是resources.xml。

3d37e7605205e72b7d829f41867ace52.png

2)无脑下一步安装后单元作用域默认路径C:\Program Files (x86)\IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\DESKTOP-29LUD0JNode01Cell,这里面需要注意AppSrv01,DESKTOP-29LUD0JNode01Cell都是可以自由配置无固定形式,但是中间的路径结构是固定的。(DESKTOP-29LUD0JNode01Cell意思是{SystemHostName}Node01Cell。)

d5df1ccb88c1e828ad646aa6775b9f3b.png2)再深入节点作用域则是在单元作用域路径的基础上深入目录\nodes\DESKTOP-29LUD0JNode01。(DESKTOP-29LUD0JNode01意思是{SystemHostName}Node01。)

0e7b7629f82971c14314f7973334aaf9.png3)再再深入服务器作用域则是在节点作用域的基础上深入目录\servers\server1。

881732341900ff8a268de38d101b6aa4.png4)那么根据配置的作用域打开对应的resources.xml就可以了,然后在文件中搜索我们的jndi名称。我上面2.3的配置是设置在节点作用域下,故打开节点作用域的resources.xml。这里离目标更近一步了,我们获得了authDataAlias和数据库连接地址,接下来是找到真实的认证信息。

e688e9def7f4e90012bd13d41542d8fc.png068ae08594fbfa9234a2f4cca7684dc0.png

5)authDataAlias的值是保存在单元作用域下的security.xml文件中,打开security.xml搜索我们的别名。userId是数据库用户名,password则是数据库口令。

f55fef79ea7bdb0d3edf0c5dd0e268a0.png

78f0080bae146c6ccaff98f100c61141.png6)又是一个处理过后的密码,这里有个网页工具可以一试http://strelitzia.net/wasXORdecoder/wasXORdecoder.html,就可以获得密码了。

3195470234783ce67a0f4b1fbcb54819.png

四、总结

1、配置Tomcat需要通过文件编辑实现,而WebLogic和WebSphere提供了网页控制台配置方式。

2、Tomcat重点关注servers.xml、context.xml和\conf\Catalina\{servername}{appname}.xml。

3、Weblogic配置藏在config\jdbc下,WebSphere分散保存在resources.xml和security.xml中。

4、代码审计时往往会遇上硬编码问题,可以将该风险转嫁规避。

*本文作者:wexiaojiu,转载请注明来自 FreeBuf.COM

f63fd7f3e45be071a2fc8de5818252a6.png

http://www.jmfq.cn/news/5218741.html

相关文章:

  • 百度云平台建设网站/百度推广官方网站登录入口
  • 网站建设项目策划/百度指数需求图谱
  • 网站开发维护工作/人教版优化设计电子书
  • wordpress woo theme/广州关键词优化外包
  • 湖南网站建设的公司排名/seo关键词优化外包公司
  • 代刷网网站怎么做/免费的网站推广在线推广
  • 网站建设协议/中国新闻网最新消息
  • 怎么做网站的动效/今日新闻联播
  • 网站建设软件开发公司/大一网页设计作业成品免费
  • 高唐网站建设/公众号免费推广平台
  • 深圳网站建设信科便宜/优化内容
  • 萍乡网站设计公司/品牌推广策划营销策划
  • 做二手手机的网站有哪些/免费注册推广网站
  • 网站未备案什么意思/网站排名优化公司哪家好
  • 网站建设分金手指专业三十/海南网站制作
  • 广东中山市做网站/360提交入口网址
  • 流量主小程序搭建/整站seo排名
  • 免费网站空间怎么办/新闻头条今日新闻下载
  • 企业网站做百度小程序/排名函数
  • 杭州做兼职网站建设/市场营销七大策略
  • 做响应式网站的物流/seo是什么字
  • 红花岗区住房和城乡建设局网站/进一步优化落实
  • 基于互联网怎样做网站推广/省好多会员app
  • html5网站开发框架/友情链接联盟
  • 莎娜琳官方网站做水/备案域名购买
  • 网站建设公司有/百度售后服务电话
  • 网站建设 英文/郑州seo技术博客
  • 教研网站建设方案/湖北seo诊断
  • 做国外搞笑网站/用模板快速建站
  • 小红书关键词优化/宁波seo外包服务