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

巧用Druid数据源实现数据库连接密码的加密解密

经过一番调研后,笔者发现阿里强大的druid数据源就能很好的实现这个需求。本文不仅带领读者实现这个数据库连接密码的加密解密功能,还带领读者把其中的流程和原理彻底搞清楚。...上面我们介绍了druid数据源的众多功能,不过本文只专注于解锁其中的Filter扩展中的ConfigFilter实现数据库连接密码的加密解密功能,目的在于防止因代码中出现数据库连接明文密码而导致连接密码泄露...4.4 数据库连接密文解密的具体实现 在ConfigFilter类中有个init方法,正是在这个初始化方法中完成了数据源加密密码的解密 public void init(DataSourceProxy...,则从连接属性中获取加密密码,否则从数据源实例中获取加密密码 if (info !...,则证明我们在项目中使用Druid数据源完成了数据库连接密码加密解密功能的修改。

5.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java 单点登录 cas 修改配置文件 为查询数据库登录

    红色部分,注释掉默认的简单验证方式(用户名密码相同即可),修改为查询数据库的bean,配置加密方式,以及数据源 注意事项:org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler...-- 自定义 end --> 4、以上绿色部分为自定义的加密方式,跟数据源,此时注意,要导入连接数据库的驱动 jar 包,上面我用的是 spring jdbc 的方式连接数据库,因此数据源配置如上 需要...cas 里都有了 还要连接oracle的驱动 jar包 ojdbc14.jar 注意事项:数据源配置不同数据库需要的jar包驱动,配置方式不同,容易出错,下面...--配置数据源 方式一 通过 spring jdbc 连接 start--> 数据源 方式一 通过 spring jdbc 连接 end--> <!

    84320

    Java项目实践,JDBC连接oracle数据库的十大技巧

    由于之前做过的老项目中用的是通过JDBC直接连接oracle数据库,现在做一些接口程序,有的也是JDBC,总结记录了一些操作技巧,可以提高运行效率。...Java数据库连接(JDBC)API是一系列能够让Java编程人员访问数据库的接口,各个开发商的接口并不完全相同。...在使用多年的Oracle公司的JDBC后,我积累了许多技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能。...2、关闭自动提交功能,提高系统性能 在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的。...7、使用Oracle locator方法插入、更新大对象(LOB)   Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理,尤其是Thin驱动程序不支持利用PreparedStatement

    1.1K20

    jdbc基础 (五) 连接池与数据源 DBCP以及C3P0的使用

    一、连接池的概念和使用 在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存取数据和关闭数据库连接等步骤...数据库连接池技术是解决这个问题最常用的方法。 数据库连接池的主要操作如下: (1)建立数据库连接池对象。 (2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。...C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。...(某些驱动并不支持只读模式,如:Informix) 32 defaultReadOnly= 33 34 #driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation...基础 (二) 通过properties配置文件连接数据库中的JdbcUtils,不过此处原理为从连接池中获取一个数据源,通过数据源来获取Connection对象。

    94960

    hhdb数据库介绍(9-12)

    、垂直分片表、父表、子表,仅支持对水平分片表使用alter修改分片字段;水平分片表中,不支持RANGE、MATCH、ROUTE分片规则的源表进行alter修改分片字段;进行alter修改分片字段时,源表不能有正在进行的分片方案变更任务...DBLINK功能,可与MySQL、Oracle或其他流行数据库建立通信连接,执行跨不同类型的数据库的查询等操作。...=/data/csv_data';2.语法说明该语句的作用是创建一个数据库链接,允许当前数据库与另一个远程数据库或外部文件建立连接,并使用给定的用户名、密码和JDBC连接等信息。...目前针对外部数据库,计算节点支持与MySQL、Oracle或其他流行数据库建立通信连接。...remote_password:远程连接的数据库用户名对应的密码;jdbcurl:连接数据库的JDBC连接串,使用提供的JDBC URL来确定如何连接到远程数据库;Oracle如下:jdbc:oracle

    6510

    JDBC、C3P0、DBCP、Druid 数据源连接池使用的对比总结.md

    数据源 什么是数据源 JDBC2.0 提供了javax.sql.DataSource接口,它负责建立与数据库的连接,当在应用程序中访问数据库时 不必编写连接数据库的代码,直接引用DataSource...c3p0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。...和commons-pool.jar Druid是阿里巴巴出品的数据源,而且是淘宝和支付宝专用数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,...【主要是监控DB池连接和SQL的执行情况】 Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。...poolPreparedState- ments false 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。

    6.2K50

    连接数据库失败,难道MySQL 5.7客户端与8.0数据库不兼容?

    我们可以验证一下,MySQL 5.7的客户端使用socket方式连接MySQL 8.0数据库是否正常。...根据MySQL 5.7的文档描述,可以看出,MySQL 5.7的客户端如果没有显式配置–ssl-mode参数,并且数据库端支持SSL加密连接的话,那么客户端会尝试创建SSL加密连接;如果SSL加密连接失败则退而求其次使用不加密连接...我们注意到,MySQL 5.7的客户端创建SSL加密连接有两个必要条件:1)客户端没有显式禁用SSL;2)数据库端支持SSL加密连接。...3.2 MySQL 8.0数据库端的变化 第一点已经很明确了,MySQL 5.7的客户端默认是开启SSL的。我们来看看第二点,数据库端支持SSL加密连接。...同时,MySQL 5.7之前版本的客户端默认禁用SSL,而MySQL 5.7版本的客户端在数据库端支持SSL的情况下会尝试创建SSL加密连接。

    12.5K31

    Druid 介绍及配置「建议收藏」

    连接Oracle数据库,打开PSCache,在其他的数据库连接池都会存在内存占用过多的问题,Druid是唯一解决这个问题的连接池。...我的应用配置的是JNDI数据源,可以用DruidDataSource么?...实际测试过的有 数据库 支持状态 mysql 支持,大规模使用 oracle 支持,大规模使用 sqlserver 支持 postgres 支持 db2 支持 h2 支持 derby 支持 sqlite...Oracle下jdbc executeBatch时,更新行数计算不正确 使用jdbc的executeBatch 方法,如果数据库为oracle,则无论是否成功更新到数据,返回值都是-2,而不是真正被sql...如何设置为让连接池知道数据库已经断开了,并且自动测试连接查询 加入以下配置: 连接是否有效的sql,要求是一个查询语句,常用select 'x'。

    3.2K30

    基于openjdk的jdbc连不上mysql?

    熟悉ranger的应该知道,ranger服务端将服务鉴权的策略信息存储在mysql中。 在使用oracle jdk的过程中,一直都没有出现问题,ranger能正确从mysql读取和存放数据。...与mysql的连接无法正确建立,从而报错: 详细release戳这里:https://www.java.com/en/download/helprelease_changes.html 对比oracle...jdk的版本,jdbc连接中没有手动指定 useSSL=false 的时候,其连接的建立仍旧还是使用了tls的方式,并且默认使用1.1版本进行交互。...解决的办法其实很简单: 一种方法是在jdbc中指定不使用ssl,即增加参数useSSL=false,这种是比较常见的解决办法。...但有一点,因为其连接交互过程没有进行加密,安全无法得到保证(通常mysql都在内网,与平台服务交互,其网络环境本身相对比较安全,因此不进行加密也没有太大风险) 另一种方法就是在jdbc中指定使用tls1.2

    2.8K30

    Druid简介「建议收藏」

    Druid是一个JDBC组件,它包括三个部分: 基于Filter-Chain模式的插件体系 DruidDataSource 高效可管理的数据库连接池 SQL Parser Druid支持所有JDBC兼容的数据库...可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。 数据库密码加密。...maxWait=60000 #是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。...#用来检测连接是否有效的sql,要求是一个查询语句。...=3000 #配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis=300000 如果要使用Druid的内置监控功能,需要配置数据源时加上<property

    1.1K20

    分布式 | 如何与 DBLE 进行“秘密通话”

    在即将要发版的 DBLE 版本中,我们将会支持 SSL 加密连接,需要注意的是目前加密处理是处于 Client — DBLE 通信阶段,DBLE — MySQL 通信阶段暂未涉及。...和 MySQL 一致,我们提供了一个开关 supportSSL ,用于标识 SSL 是否启用,默认值为 false ,如果需要使用 SSL 连接时,首先需要确保此开关处于打开的状态。...1、非加密连接 DBLE ,以下为 JDBC Demo 可供参考,与 DBLE 建立连接并查询 user 表数据: public class SslTest {     private static ...总结 凡是都有两面性,加密连接虽然确保了数据的安全性,但是另一方面无疑是牺牲了部分性能。从 SSL 实现方式来看,建立连接时需要进行握手、加密、解密等操作。...SSL 配置的适用对象,只要 DBLE 服务端开启并正确配置了 SSL 选项,所有用户与 DBLE 建立连接时均可自主选择是否需要采用 SSL 加密连接。

    73420

    mybatisplus多数据源配置---dynamic

    支持数据库敏感配置信息 加密 ENC()。 支持每个数据库独立初始化表结构schema和数据库database。 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。...提供 自定义数据源来源 方案(如全从数据库加载)。 提供项目启动后 动态增加移除数据源 方案。 提供Mybatis环境下的 纯读写分离 方案。 提供使用 spel动态参数 解析数据源方案。...提供 基于seata的分布式事务方案。 附:不支持原生spring事务。 提供 本地多数据源事务方案。 附:不支持原生spring事务。...#约定 本框架只做 切换数据源 这件核心的事情,并不限制你的具体操作,切换了数据源可以做任何CRUD。 配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称,相同组名称的数据源会放在一个组下。...#严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 datasource: master: url: jdbc

    4.5K31

    一个基于SpringBoot的快速集成多数据源的启动器

    支持数据库敏感配置信息 加密 ENC()。 支持每个数据库独立初始化表结构schema和数据库database。 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。...提供项目启动后 动态增加移除数据源 方案。 提供Mybatis环境下的 纯读写分离 方案。 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。...支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。 提供 基于seata的分布式事务方案。附:不支持原生spring事务。...提供 本地多数据源事务方案。附:不支持原生spring事务。 约定 本框架只做 切换数据源 这件核心的事情,并不限制你的具体操作,切换了数据源可以做任何CRUD。...配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称,相同组名称的数据源会放在一个组下。 切换数据源可以是组名,也可以是具体数据源名称。组名则切换时采用负载均衡算法切换。

    94310

    MySQL 8.0的Public Key Retrival错误,毫无规律可言怎么破?

    笔者所在部门的连接数据库的方法有JDBC、JDBCTemplate、C3P0连接池和Druid连接池等技术,在这些连接实现方法上笔者都观察到出现过上述的错误。...而且笔者发现,底层使用JDBC连接驱动的情况下,无论上层是采用何种数据源实现技术,笔者的部门都发现会报上述错误。...这些插件的具体执行流程如下: 检查客户端是否禁用SSL/TLS加密传输; 如果客户端未禁用SSL/TLS加密传输,则客户端在进行认证时的认证报文(传输用户名和密码的报文)是使用TLS进行传输的,两种插件认为认证报文传输安全...图4.2 启用TLS协议MySQL登录数据包详情 2、禁用SSL/TLS加密传输的客户端认证流程 如上述流程所述,当客户端禁用SSL/TLS加密传输时(比如JDBC连接串设置useSSL=false参数...SSL/TLS协议,则可以尝试使用CLI客户端登录一次MySQL数据库制造登录缓存; 如果必须禁用SSL/TLS协议,则可以通过增加如下参数允许客户端获得服务器的公钥: 在JDBC连接串中加入allowPublicKeyRetrieval

    92320

    Oracle GoldenGate微服务架构

    连续提取和复制事务性数据处理语言(DML)操作和数据定义语言(DDL)更改(对于受支持的数据库),以保持源数据和目标数据的一致性。...使用Oracle GoldenGate for Big Data从受支持的数据库源提取数据并将其复制到Big Data和文件目标。...连续提取和复制事务性数据操作语言(DML)操作和数据定义语言(DDL)更改(对于受支持的数据库),以保持源数据和目标数据的一致性。从数据库提取并复制到数据库外部的文件。从异构数据库源捕获。...但是,可以将与异构数据库关联的源Oracle GoldenGate Classic复制到具有Oracle的目标Oracle GoldenGate MA,或将源Oracle GoldenGate MA与Oracle...EXTRACT 后 ADD EXTRACT 非安全通信 使用SSL的加密通信 使用泵工艺 使用分发服务器 Admin Client是以GGSCI为基础设计的。

    1.7K20
    领券