Druid实现数据库连接用户密码加密

来源:互联网 发布:江西日报网 软件 编辑:程序博客网 时间:2024/04/29 04:16

jar版本:druid-1.0.13.jar

1. 加密,用以下命令将用户名和密码加密

cmd命令行执行 java -cp D:/druid-1.0.13.jar com.alibaba.druid.filter.config.ConfigTools 用户名/密码

得到密文:

f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==

2.用户名解密:

ackage com.heli.core.user.common;import com.alibaba.druid.filter.config.ConfigTools;import com.alibaba.druid.pool.DruidDataSource;/*** 用来解密配置中的密文(重点配置,在这里扩展用户名的解密)* setUsername(name) 方法对应xml中的一个property属性,password默认加密不需要重写,* 还可以加密url 重写setUrl(url) */@SuppressWarnings("all")public class DecryptDruidSource extends DruidDataSource{@Overridepublic void setUsername(String username) {try {username = ConfigTools.decrypt(username);} catch (Exception e) {e.printStackTrace();}super.setUsername(username);}}


3.spring-database.xml中数据库连接的配置

<bean id="dataSource" class="com.heli.core.user.common.DecryptDruidSource"><property name="driverClassName" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" />        <!-- config.decrypt=true -->   <property name="filters" value="config" />       <property name="connectionProperties" value="config.decrypt=true" />      <!-- 初始化连接大小 --><property name="initialSize" value="${initialSize}" /><!-- 连接池最大使用连接数量 --><property name="maxActive" value="${maxActive}" /><!-- 连接池最大空闲 这个参数已经被弃用 <property name="maxIdle" value="${maxIdle}"></property> --><!-- 连接池最小空闲 --><property name="minIdle" value="${minIdle}"></property><!-- 获取连接最大等待时间 --><property name="maxWait" value="${maxWait}"></property>         <property name="validationQuery" value="${validationQuery}" />        <property name="testWhileIdle" value="${testWhileIdle}" />        <property name="testOnBorrow" value="${testOnBorrow}" />        <property name="testOnReturn" value="${testOnReturn}" />         <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->        <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->        <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />         <!-- 关闭长时间不使用的连接 -->        <!-- 打开removeAbandoned功能 -->        <property name="removeAbandoned" value="${removeAbandoned}" />        <!-- 1200秒,也就是20分钟 -->        <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />        <!-- 关闭abanded连接时输出错误日志 -->        <property name="logAbandoned" value="${logAbandoned}" /></bean>


4.数据库配置文件:

3.user.properties中#mysqlusername=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==password=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==url=jdbc:mysql://192.168.1.194/user?characterEncoding=utf-8driver=com.mysql.jdbc.DriverinitialSize=5minIdle=5maxActive=20maxWait=60000timeBetweenEvictionRunsMillis=60000minEvictableIdleTimeMillis=30000validationQuery=SELECT 1testWhileIdle=truetestOnBorrow=truetestOnReturn=truefilters=stat,log4jremoveAbandoned=trueremoveAbandonedTimeout=1200logAbandoned=true





转载于:https://my.oschina.net/ydsakyclguozi/blog/511997?fromerr=XKumd6eO

https://github.com/alibaba/druid/wiki/使用ConfigFilter





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁宝宝老拉肚子怎么办 一岁宝宝拉肚子怎么办啊 小孩发烧怎么办39度要吃消炎药吗 孩子不爱吃水果蔬菜怎么办 一岁宝宝不吃水果怎么办 一岁宝宝不爱吃水果怎么办 1岁多宝宝不吃水果怎么办 中学生不爱与家长交流怎么办 孩子一直37度多怎么办 小孩39度3算高烧怎么办 7岁发烧怎么办如何退烧 7岁反复发烧7天怎么办 一岁发烧39.8度怎么办 反复发烧39度4天怎么办 大人发烧到39度怎么办 小孩高烧39度多怎么办 孩子嗓子发炎发烧怎么办吃什么药 猫咪吃了点桃子怎么办 猫吃了牛油果怎么办 苹果手机死机开不了机怎么办 新生儿出生第一天没奶水怎么办 第一天断奶奶水一直流出怎么办 3岁宝宝不长个子怎么办 5个月宝宝不长个怎么办 孩子比同龄人矮很多怎么办 孕妇做春梦宫缩怎么办 减肥掉头发很厉害怎么办 孕妇吃了金枪鱼罐头怎么办 怀孕吃了烂水果怎么办 快递水果压坏了怎么办 谈对象被骗了钱怎么办 如果遇到半夜坏人敲门怎么办 小孩晚上不进房间睡觉怎么办 房子照不到阳光潮湿怎么办 4个月婴儿不拉屎怎么办 小孩六个月奶不够吃怎么办 到晚上就没奶水怎么办 20多天奶水不够怎么办 四个月奶不够吃怎么办 7个月宝宝不肯吃东西怎么办 6个月宝宝不肯吃东西怎么办