SpringBoot数据库密码动态配置
一般的开发,我们都习惯把数据库密码配置在属性文件中,这样配置方便好用,但是缺点也是很明显的。这样配置的密码是静态的、明文的。一般都安全要求比较严格的公司,这些密码都会被统一管理,定期修改。我们需要动态获取密码。下面是结合SpringBoot实现动态获取密码的一个简单例子:
首先是applicationContext.xml配置
<bean id="dataSource" class="${spring.datasource.type}"init-method="init" destroy-method="close"><property name="driverClassName" value="${spring.datasource.driver-class-name}" /><property name="url" value="${spring.datasource.url}" /><property name="username" value="${spring.datasource.username}" /><property name="password"><bean class="com.XXX.ide.iedp.common.PasswordFactory"><property name="safe" value="AIM_ICORE_CLAIM_IEDP" /><property name="folder" value="root" /><property name="object" value="iedpopr" /><property name="pwdProvider" ref="passwordProvider" /></bean></property><property name="initialSize" value="${spring.datasource.initialSize}" /><property name="minIdle" value="${spring.datasource.minIdle}" /><property name="maxActive" value="${spring.datasource.maxActive}" /><property name="maxWait" value="${spring.datasource.maxWait}" /><property name="timeBetweenEvictionRunsMillis"value="${spring.datasource.timeBetweenEvictionRunsMillis}" /><property name="minEvictableIdleTimeMillis"value="${spring.datasource.minEvictableIdleTimeMillis}" /><property name="validationQuery" value="${spring.datasource.validationQuery}" /><property name="testWhileIdle" value="${spring.datasource.testWhileIdle}" /><property name="testOnBorrow" value="${spring.datasource.testOnBorrow}" /><property name="testOnReturn" value="${spring.datasource.testOnReturn}" /><property name="poolPreparedStatements" value="${spring.datasource.poolPreparedStatements}" /><property name="maxPoolPreparedStatementPerConnectionSize"value="${spring.datasource.maxPoolPreparedStatementPerConnectionSize}" /><property name="filters" value="${spring.datasource.filters}" /><property name="connectionProperties" value="${spring.datasource.connectionProperties}" /></bean><bean id="passwordProvider" class="com.XXX.ide.iedp.common.PasswordProvider"init-method="init"><property name="appId" value="${cyberark.appId}" /><property name="appKey" value="${cyberark.appKey}" /><property name="configPath" value="password.properties" /><property name="remoteUrl"value="${cyberark.remoteUrl}" /><property name="SSLVerify" value="true" /></bean>
接着是application.properties配置
jdbc.url=jdbc:postgresql://88。88.88.88:8888/iedp
jdbc.username=******
cyberark.appId=******
cyberark.appKey=******
cyberark.remoteUrl=https://******/getPassword
最后是获取密码的类与方法
这部分代码就不贴上来,其实主要的逻辑就有一个密码管理的统一接口,该接口接收跟数据库密码相关的参数,返回密码。主要实现是在PasswordProvider类中init方法里实现的。
该方法在applicationContext.xml配置启动druid连接池时,启动获取密码。
SpringBoot数据库密码动态配置相关推荐
- springboot集成Appollo动态配置
pom新增依赖: <!-- https://mvnrepository.com/artifact/com.ctrip.framework.apollo/apollo-client --> ...
- SpringBoot—数据库初始化脚本配置
关注微信公众号:CodingTechWork,一起学习进步. 介绍 在SpringBoot工程中,一般情况下,我们通过jpa或者mybatis自动生成表后,下次重启后就不会再重新生成表.但也不可避免会 ...
- java配置文件中数据库密码加密
最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...
- mysql数据库druid密码加密_Druid数据库密码加密
背景 数据库密码直接写在配置中,对安全来说,是一个很大的挑战.Druid为此提供一种数据库密码加密的手段ConfigFilter. druid版本为1.1.18. 加密 1.项目中引入依赖 com.a ...
- springboot动态多数据源配置和使用(从数据库读取数据源配置)(三)
上两遍已经描述了动态多数据源的原理和基础实现了,前面的数据源配置都是从application.yml中配置多数据源的,这里再拓展补充一下其他场景,如何读取数据源不从application.yml中配置 ...
- SpringBoot 动态配置数据源
SpringBoot 动态配置数据源 增删改查 概述 1.首先要搞明白为什么要用要动态数据源,在很多应用场景中,需要用到动态数据源,比如多个能源类项目,登录系统时根据用户信息切换到对应的数据库进行操作 ...
- springboot整合Quartz实现动态配置定时任务
版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/liuchuanhong1/article/details/60873295 前言 在我们日常的开发中,很多 ...
- SpringBoot打成jra包启动时读取外部配置文件实现动态配置
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...
- springboot 数据库链接池常用配置
保留一下springboot常用的配置 spring.datasource.primary.url=jdbc\:mysql\://localhost\:3306/test?useUnicode\=tr ...
最新文章
- Sorenson Capital:值得投资的 5 种 AI 技术
- 计算机网络:三层ISP结构
- 指纹图谱相似度评价软件_不同产地佛手指纹图谱及模式识别研究
- 开源优势_企业开源的10大优势
- 一步一步写算法(之克鲁斯卡尔算法 上)
- android 分享qq微信朋友圈,H5微信JS-SDK实现分享朋友 朋友圈以及QQ自定义分享
- .plist 中各个key的含义
- 组态软件(Configure)
- 上海道宁联合德国think-cell,为您提供更便捷高效的PowerPoint插件
- ad中电容用什么封装_【AD封装】XH2.54mm座子插件贴片(带3D)
- 武汉都有哪些互联网公司?
- 2017校园招聘 携程编程题
- 基于企业战略的业务流程重组与外包(2) (转载)
- 古代汉语王力版复习重点
- udp ue4 通讯_UE4 UDP通信
- 「Matlab」“矩阵对矩阵求导的方法”讲解
- 将yyyyMMdd格式化为yyyy-MM-dd日期格式及DateFormateUtils、DateUtils的使用
- [源码和文档分享]基于QT实现的图的可视化程序地铁换乘指南系统
- 脑机接口专栏 | 如何分析静息状态的fMRI数据?(三)
- led可见光通信直方图均衡matlab,基于高通滤波和直方图均衡的钢轨裂纹红外图像增强技术...
热门文章
- 我的世界服务器如何修改权限设置,我的世界设置成员权限 | 手游网游页游攻略大全...
- 一个碌碌无为的程序员
- 信息系统开发方法以及其应用-系统分析师论文-2022年上半年必考知识点
- tkmybatis 默认值 问题
- uniapp 微信小程序开发 图片上传压缩
- java枚举值转化中文_多个枚举的国际化(枚举值的转换)
- ESP32开发日志之AiThinkerIDE_V1.0使用过程中的一个问题
- word标题和文字直接的空格
- linux主机挂软件,推荐Linux服务器面板宝塔软件
- 2021.03.12——学习公司项目