旧项目配置的jdbc.password不知道在哪里解密的

旧项目配置的jdbc.password不知道在哪里解密的,将密文删掉一个字母,让它报出错误栈,如图:

很明显spring的源码类PropertyResourceConfigurer.java调用了项目中的继承类MPropertyPlaceholderConfigurer.java

 

public class MPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
    protected static final String JEDIS_PASSWORD = "redis.password";
    protected static final String JDBC_PASSWORD = "jdbc.password";
    protected static final String SECRET_KEY_DEFAULT = "12345688";

    public MPropertyPlaceholderConfigurer() {
    }

    protected String convertProperty(String propertyName, String propertyValue) {
        return !"jdbc.password".equals(propertyName) && !"redis.password".equals(propertyName) ? this.convertPropertyValue(propertyValue) : Cryption.decryption(propertyValue, "12345688");
    }
}

 

查看代码,果然继承了类PropertyResourceConfigurer,并重写convertProperty方法,在此处解密操作。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot + Atomikos环境下,我们可以使用Jasypt库来实现数据库信息的加密和解密。以下是一个示例: 1. 首先,在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.2</version> </dependency> ``` 2. 在application.properties或application.yml文件中,我们需要设置以下属性: ```properties jasypt.encryptor.password=yourSecretPassword ``` 这里的“yourSecretPassword”是一个自定义的密码,用于加密和解密数据。 3. 在applicationContext.xml文件中,我们可以使用Jasypt提供的加密和解密Bean来加密和解密数据库信息。以下是一个示例: ```xml <bean id="propertyConfigurer" class="com.ulisesbocchio.jasyptspringboot.properties.JasyptEncryptablePropertyPlaceholderConfigurer"> <constructor-arg ref="encryptor" /> <property name="locations"> <list> <value>classpath:application.properties</value> </list> </property> </bean> <bean id="encryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor"> <property name="password"> <value>${jasypt.encryptor.password}</value> </property> </bean> <bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="uniqueResourceName"> <value>dataSource</value> </property> <property name="xaDataSourceClassName"> <value>com.mysql.cj.jdbc.MysqlXADataSource</value> </property> <property name="xaProperties"> <props> <prop key="URL">${encryptor.decrypt('encrypted.database.url')}</prop> <prop key="user">${encryptor.decrypt('encrypted.database.username')}</prop> <prop key="password">${encryptor.decrypt('encrypted.database.password')}</prop> </props> </property> <property name="poolSize" value="5" /> </bean> ``` 在这个示例中,我们使用了JasyptEncryptablePropertyPlaceholderConfigurer作为属性配置器,并将其构造函数的参数设置为encryptor Bean。我们还使用了StandardPBEStringEncryptor来创建encryptor Bean,并将其密码设置为前面在application.properties文件中设置的密码。 在dataSource Bean中,我们使用了encryptor.decrypt()方法来解密数据库URL、用户名和密码。这样,我们就可以安全地存储数据库信息,而不必担心它们被第三方获取到。 需要注意的是,加密和解密的过程是在Spring应用程序的启动过程中完成的。因此,如果我们在应用程序运行时更改了加密密码,那么我们需要重新启动应用程序才能使新密码生效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值