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

如何避免在tomcat的server.xml中以明文形式存储密码?DataSource的资源定义?

在Tomcat中,为了避免在server.xml文件中以明文形式存储密码,可以使用外部密码存储机制。这里我们将介绍一种基于Java KeyStore的方法。

  1. 首先,创建一个Java KeyStore文件,例如:keystore.jks
代码语言:txt
复制
keytool -genkey -alias tomcat -storetype JKS -keyalg RSA -keysize 2048 -keystore keystore.jks
  1. 将密码添加到KeyStore中。
代码语言:txt
复制
keytool -genseckey -alias dbpassword -storetype JKS -keyalg AES -keysize 128 -keystore keystore.jks
  1. 将生成的KeyStore文件复制到Tomcat的安装目录下的conf文件夹中。
  2. server.xml文件中,使用CredentialHandler元素引用密码。
代码语言:xml
复制
<CredentialHandler className="org.apache.tomcat.util.buf.DigesterCredentialHandler"
                    algorithm="AES"
                    keyStoreFile="conf/keystore.jks"
                    keyStoreType="JKS"
                    keyAlias="dbpassword"
                    keyPass="your_key_pass" />
  1. context.xml文件中,使用Credential元素引用密码。
代码语言:xml
复制
<Credential
    className="org.apache.tomcat.util.buf.DigesterCredentialHandler"
    algorithm="AES"
    keyStoreFile="conf/keystore.jks"
    keyStoreType="JKS"
    keyAlias="dbpassword"
    keyPass="your_key_pass" />
  1. server.xml文件中,使用Credential元素引用密码。
代码语言:xml<Resource name="jdbc/yourDataSource"
复制
          auth="Container"
          type="javax.sql.DataSource"
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/yourDatabase"
          username="yourUsername"
          password="yourPassword"
          factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
          initialSize="10"
          maxActive="100"
          maxIdle="20"
          minIdle="15"
          removeAbandoned="true"
          removeAbandonedTimeout="60"
          logAbandoned="true"
          validationQuery="SELECT 1"
          testOnBorrow="true"
          testWhileIdle="true"
          timeBetweenEvictionRunsMillis="30000"
          minEvictableIdleTimeMillis="60000"
          jmxEnabled="true"
          jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
                              org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer" />

通过以上步骤,您可以在Tomcat中为数据源定义一个资源,并在不明文存储密码的情况下使用它。

推荐的腾讯云相关产品:

  • 云服务器:提供可靠的服务器计算资源,支持云服务器自动备份和恢复。
  • 数据库:提供MySQL、PostgreSQL、MongoDB等多种数据库服务,支持数据库的自动备份和恢复。
  • 对象存储:提供可靠的存储服务,支持多种存储类型和文件访问方式。
  • 内容分发网络:提供全球加速服务,支持多种内容分发方式。
  • 云硬盘:提供可靠的块存储服务,支持多种磁盘类型和文件系统。
  • 负载均衡:提供可靠的负载均衡服务,支持多种负载均衡算法和协议。
  • 云硬盘:提供可靠的块存储服务,支持多种磁盘类型和文件系统。
  • 虚拟私有云:提供可靠的虚拟网络服务,支持多种网络拓扑和访问控制。

推荐的产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何定义Tomcat Realm实现我们用户认证需求「建议收藏」

虽然Tomcat自带这六种Realm大部分情况下都能满足我们需求,但也有特殊需求Tomcat不能满足时候,比如我最近一个需求就是:**我用户和密码信息存储LDAP,但用户角色却存储关系数据库...3.5 像配置标准realm一样server.xml文件声明你realm 这个步骤非常关键,打开conf/server.xml文件,搜索Realm,你会看到Tomcat配置文件自带Realm...Realm优点 * 安全:对于每个现有的Realm实现里,用户密码(默认情况下)明文形式被贮存。许多环境,这是不理想,因为任何人看见了认证数据都可以收集足够信息成功登录,冒充其他用户。...为了避免这个问题,标准实现支持digesting用户密码概念。这被贮存密码是被加密后(一种不易被转换回去形式),但是Realm实现还是可以用它来认证。...当你选择这一选项,贮存在Realm里密码内容必须是这个密码明文形式,然后被指定运算法则来加密。

1.1K30

Tomcat 6 --- JNDI详解

为了避免篇幅过长,自定义JNDI则留到后面再说。 配置   这里说明内容,不是每次编码必须步骤,只是先说明一下都有哪些地方涉及到配置。...可以配置三种形式资源: 用于配置一些应用程序变量,比如参考 tomcat下部署solr。   ...   这里需要注意是,标签有三种配置位置:   1 conf/server.xml;   2 conf/context.xml;   3 /webapps... 添加工厂资源实例 server.xml   这个文件可以配置标签,前面说过了;还可以配置全局JNDI资源,比如默认tomcat就配置了一个userdatabase...关于其他配置比如web.xmlRealm配置这里就不多说了,看看server.xml如何设置全局资源引用: <?xml version="1.0" encoding="UTF-8"?

1.2K70
  • Docker学习笔记之搭建 Java Web 项目运行环境

    开发过程,我们倾向于将与项目有关内容集合到同一个文件夹下,这样做有几点好处: 项目内容清晰明确,复制、迁移和与他人共享过程,不会发生遗漏情况; 定义 Docker Compose 项目时可以使用相对路径...这里我们修改 Redis 密码为例。 打开配置文件,找到定义 Redis 授权授权地方,将密码修改为我们需要内容。 # ....那么我们就以最后一个尚未出场 Tomcat 为例,说说如何Tomcat 镜像里拿到配置文件。 要拿到 Tomcat 配置文件,我们需要先创建一个临时 Tomcat 容器。...对于 Tomcat 来说,开发过程我们可能会经常改动配置主要是 server.xml 和 web.xml 这两个文件,所以接下来我们就把这两个文件从容器复制到宿主机里。...这么做目的是为了让 Redis 和 MySQL 数据能够持久化存储避免我们创建和移除容器时造成数据流失。

    1.1K60

    Confluence 6 新 Confluence 安装配置一个数据源连接

    如果在你 Tomcat 配置了数据源,并且Confluence 设置指南安装时候检测到这个配置时候,配置数据源选项将会提供给你进行配置。入股你希望使用数据源,请参考下面的配置。 1.... Tomcat 配置数据源 下一步,将数据源配置到 Tomcat 。...请参考  Configuring a SQL Server Datasource in Apache Tomcat 文档来进行配置。  MySQL......如果你使用了不支持数据库驱动或者自定义 JDBC 驱动,或者你数据源  driverClassName,协作写编辑将会失败。请参考 Database JDBC Drivers 页面内容。...你数据库连接池需要允许有足够连接数来同时支持  Confluence 和 Synchrony (默认最大连接池数量为 15)。 在你数据库,你使用简单用户名和密码授权。 4.

    1.2K60

    CAS客户端服务器端配置步骤

    图1 是 CAS 最基本协议过程: 图 1. CAS 基础协议 CAS Client 与受保护客户端应用部署在一起, Filter 方式保护受保护资源。...如果通过tomcat6 //TS//tomcat6来启动,马上就能够发现提示信息。修改一下tomcat6\conf\server.xml端口就能够解决。 通常使用80端口有: 1....如何以管理员身份进入到命令行下呢?开始->搜索框输入cmd->等待(注意不回车)->出现cmd.exe->右键“管理员身份运行”即可。...3、输入keystore密码 密码任意,此处以123456为例,要记住这个密码,之后进行server.xml配置时需要使用。...,建议输入与keystore密码一致,设置其它密码也可以 l  完成上述输入后,直接回车则在你第二步定义位置找到生成文件 5、输入之后会出现确认提示 此时输入y,并回车。

    3.9K20

    Tomcat

    例如修改端口号,添加虚拟主机等;下面会详细介绍这个文件; tomcatusers.xml:存储tomcat用户文件,这里保存tomcat用户名及密码,以及用户角色信息。...客户端浏览器通过这个MIME类型就知道如何处理它了。当然是浏览器显示这个html文件了。但如果服务器响应是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。...MIME就是用来说明文内容是什么类型! context.xml:对所有应用统一配置,通常我们不会去配置它。 l lib:Tomcat类库,里面是一大堆jar文件。...现在hello这个Web应用已经不在Tomcat中了,这时我们需要在tomcat配置外部应用位置,配置方式一共有两种: l conf/server.xml:打开server.xml文件,找到<Host...\hosts文件,添加对http://www.itcast.cn和127.0.01绑定关系; l server.xml文件添加一个(主机)。

    1.4K30

    Tomcat-9.JNDI资源

    通常是引用保存某种资源对象工厂,比如JDBC DataSource或者JavaMail Session这样资源;或者引用配置Tomcat定义对象工厂资源。...添加一个链接,使其指向全局JNDI上下文中定义资源,使用资源链接可以使web应用访问元素中子元素资源。...一个资源名称既被定义web应用描述文件元素,又被定义web应用元素元素内,那么只有当相应元素被允许...4.全局配置 Tomcat为整个服务器维护着一个全局资源独立命名空间,这些全局资源配置$CATALINA_BASE/conf/server.xml元素内...如果已经使用定义资源,那就不必/WEB-INF/web.xml文件定义了。但是建议/WEB-INF/web.xml文件中保留相关项,以便记录应用资源请求。 5.

    1.2K30

    Tomcat配置虚拟目录并发布web应用

    `server.xml` 文件配置虚拟目录 2. 定义xml文件配置虚拟目录 3. 配置Web应用默认页面 1. 什么是 Web应用?...Web服务器上运行 Web资源都是以 Web应用形式呈现,所谓 Web应用就是多个Web资源集合,Web应用通常也称为Web应用程序或 Web工程。...server.xml 文件配置虚拟目录 首先打开/conf目前下serve.xml文件, 元素添加一个元素,具体代码如下所示: <Host...定义xml文件配置虚拟目录 实际开发,如果经常在server.xml文件配置虚拟目录会有一个弊端,那就是每次修改server.xml文件后,要想使文件生效,必须重新启动Tomcat服务器。...为了解决这个问题,可以采用另外一种方式配置虚拟目录,即在自定义XML文件配置虚拟目录。接下来,test01为例,讲解如何在自定义XML文件配置虚拟目录。

    1.8K10

    程序员25大Tomcat面试问题及答案

    1、优化连接配置.这里tomcat7参数配置为例,需要修改conf/server.xml文件,修改连接数,关闭客户端dns查询。...⑨work工作目录:该目录用于存放jsp被访问后生成对应server文件和.class文件。 16.如何配置Tomcat虚拟目录? 1、server.xml节点下添加如下代码。...18.Web请求Tomcat请求请求流程是怎么样?...19.如何tomcat集群实现Session共享 Apache集群实现TomcatSession共享配置其实很简单,Tomcat自带文档中有详细说明( /docs/cluster-howto.html...TomcatWeb服务器连接器支持两种协议:AJP和HTTP,它们均定义二进制格式Web服务器和Tomcat之间进行数据传输,并提供相应控制命令。

    26810

    Tomcat站点部署

    1、简介 Tomcat 服务器是一个免费开放源代码Web应用服务器,属于轻量级应用服务器,一台机器上配置好web 服务器,就代表可利用它响应别人访问自己建立网站页面的请求。...Tomcat安装过程很简单,这里直接跳过(需要小伙伴可以看之前公众号文章)。 部署jspxcms为例,在上面已部署环境下继续操作。...7、后台地址:http://172.17.120.10:8080/cmscp/index.do   默认账号:admin 密码为空 ?...8、Tomcat多实例站点部署 多实例作用运行不同应用(类似虚拟主机)多实例运行相同应用(实现负载均衡,支持高并发处理,session问题) 1.拷贝tomcat目录 [root@ansible.../ /usr/local/tomcat9_2 2.编辑配置文件,修改监听端口和站点家目录 [root@ansible local]# vim /usr/local/tomcat9_1/conf/server.xml

    1.6K10

    【Linux】Web服务之Tomcat服务

    步骤5:访问Tomcat管理界面 浏览器访问Tomcat管理界面,使用默认端口8080: http://localhost:8080/ 您可以使用默认管理员用户名和密码conf/tomcat-users.xml...- context.xml: 上下文配置文件,用于定义资源、监听器和过滤器等。 - web.xml: Web应用程序配置文件,定义了web应用初始化参数等。...- **虚拟主机配置**: `server.xml`添加``元素来定义虚拟主机和应用程序部署目录。...启用连接器复用:server.xml为HTTP连接器添加connectionTimeout属性并设置适当超时时间,减少因连接超时而导致请求失败。...优化会话管理:根据应用程序需求,调整会话超时时间、会话复制策略等,减少不必要会话创建和存储开销。 启用压缩:server.xml配置压缩连接器,对响应内容进行压缩,减少网络传输数据量。

    16210

    Tomcat 目录与配置文件

    一、tomcat目录说明 tomcat主目录 bin:命令,存放不同平台上启动或关闭脚本 BUILDING.txt&RUNNING.txt:使用文档,告诉用户如何搭建 conf:各种全局配置文件,最主要是...默认页面 docs 使用说明文档 examples 例子--tomcat首页examples按钮对应内容 host-manager 首页Host Manager按钮对应内容 manager...acceptCount 指定当所有可以使用处理请求线程数都被使用时,可以放到处理队列请求数,超过这个数请求将不予处理 connectionTimeout 指定超时时间数(毫秒为单位).../WEB-INF/classes目录变化,自动装载新应用程序,我们可以不重起tomcat情况下改变应用程序 host(表示一个虚拟主机) name 指定主机名 appBase 应用程序基本目录...true,则log文件名要加入时间,如下例:localhost_log.004-mm-dd.txt Realm(表示存放用户名,密码及role数据库) className 指定Realm使用类名,

    81320

    JavaWeb必需掌握知识点(最全 精美版)

    当客户端浏览器访问某个 HTML 或其他类型 Web 页包含有其他 Web 资源(如 JavaScript 文件、 图像文件、 CSS 文件等),每遇到这样一个 Web 资源,浏览器就会重新建立一个...: server.xml:配置整个服务器信息。...例如修改端口号,添加虚拟主机等; tomcat-users.xml:存储tomcat用户文件,这里保存tomcat用户名及密码,以及用户角色信息。...可以 按着该文件注释信息添加tomcat用户,然后就可以Tomcat主页中进入Tomcat Manager页面了; web.xml :部署描述符文件,这个文件中注册了很多 MIME...客户端浏览器通过这个 MIME 类型就知道如何处理它了。当然是浏览器显示这个 html 文件了。

    50610

    Tomcat配置JNDI数据源

    他们之间通过定义Tomcat数据源名联系起来。 应该说,JNDI方式配置数据源将项目代码与实施部署分离开来了,有利于开发人员和实施部署人员各司其职。...2、配置好全局数据源后,你不仅可以server.xml文件中用引用,你也可以conf/Catalina/localhostxml文件引用。...选择局部数据源还是全局数据源完全取决你自己需求,如果你经常 有几个项目需要用到同一个数据源,那么你可以使用全局数据源,然后项目的标签引用,这样可以避免重复书写...3、接着,我们写一个简单Bean,Bean里进行数据库连接。我们会在JSP页面上调用这个Bean并输出结果,查看数据源是否配置成功。...文件定义数据源名为:jdbc/dstest */ DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/dstest

    2K90

    玩转 Tomcat 配置必备 10 个小技巧!

    Manager Web Application被被定义一个自动部署文件: CATALINA_BASE/webapps/manager.xml 你必须编辑这个文件,确保contextdocBase...接下来,Tomcat将在内存建立一个context,就好象你server.xml文件里建立一样。当然,其他必需内容,将从server.xmlDefaultContext获得。...五、配置基础验证(Basic Authentication) 容器管理验证方法控制着当用户访问受保护web应用资源时,如何进行用户身份鉴别。...在这种验证方法,所有密码将被64位编码方式在网络上传输。...使用单点登录web应用最好使用一个Tomcat内置验证方式(被定义web.xml ),这比自定义验证方式强,Tomcat内置验证方式包括basic、digest、form和client-cert

    64810
    领券