java - Jasypt 的 propertyProviderClass 自定义实现不起作用

标签 java oracle liquibase

我有一个自定义 Properties 类,它扩展了 java.util.Properties 并使用 Jasypt 覆盖了 getProperty。

我已将 Jasypt 和 MyProperties jar 文件放置在 Liquibase 的 lib 文件夹下。

我正在尝试使用 Liquibase-CLI 运行它:

liquibase --defaultsFile=my.properties --propertyProviderClass=info.farhdine.MyProperties 验证

但是,我总是收到错误:

java.sql.SQLException: ORA-01017: 无效的用户名/密码;登录被拒绝

在 my.properties 文件中,即使没有加密任何内容,只要我使用 propertyProviderClass,我总是会遇到相同的错误。

有人已经成功实现了吗?

谢谢。

最佳答案

问题解决了! 我重写了 get() 方法而不是 put() :)

public class MyProperties extends java.util.Properties {
private static final long serialVersionUID = -207802321379271320L;

public MyProperties() {
    StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
    encryptor.setPassword("jasypt");
    super.defaults = new EncryptableProperties(encryptor);
}

@Override
public synchronized Object put(Object paramK, Object paramV) {
    return super.defaults.put(paramK, paramV);
}
}

关于java - Jasypt 的 propertyProviderClass 自定义实现不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37325560/

相关文章:

Grails 3 数据库迁移插件初始化错误

java.lang.outofmemoryerror android.graphics.BitmapFactory.nativeDecodeAsset(本地方法)

java - 如何重置微调器的值?

sql - DBMS 事务和序列化

c# - 使用 Oracle 时如何使用 Fluent NHibernate 实现批量抓取?

java - liquibase 中的 CLOB 类型转变为 SQL Server 中的 VARCHAR

grails - 尝试删除主键时,数据库迁移失败,但仅在某些情况下

java - JVM 能否自动使用更多交换空间来防止内存不足错误

java - 如何在 jna 中实现具有联合类型的结构体 sizeof()

sql - 我应该在创建函数后提交吗?