Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java spring-重写从属性文件接收的属性值_Java_Spring_Encryption_Properties - Fatal编程技术网

java spring-重写从属性文件接收的属性值

java spring-重写从属性文件接收的属性值,java,spring,encryption,properties,Java,Spring,Encryption,Properties,我有一个场景,从属性文件中获取编码的密码值。我有自己的解密实现,所以我想从我的java类中解密密码,然后想进一步使用解密后的值,在它引用的地方 比如说 在上面的代码中,我需要实现如下内容,对于特定于密码属性,因为rest属性很好,但密码在使用之前需要解密 (下面的实现是错误的,但我刚才提到要给出更多明确的想法) 基本上,我需要对从属性文件获得的密码进行解密,然后才能将其用于建立数据库连接 谢谢你的时间和帮助 您需要创建一个自定义数据源对象来解密密码 <bean id="myData

我有一个场景,从属性文件中获取编码的密码值。我有自己的解密实现,所以我想从我的java类中解密密码,然后想进一步使用解密后的值,在它引用的地方

比如说

在上面的代码中,我需要实现如下内容,对于特定于密码属性,因为rest属性很好,但密码在使用之前需要解密

(下面的实现是错误的,但我刚才提到要给出更多明确的想法)


基本上,我需要对从属性文件获得的密码进行解密,然后才能将其用于建立数据库连接


谢谢你的时间和帮助

您需要创建一个自定义数据源对象来解密密码

<bean id="myDataSource" class="foo.bar.PasswordDecryptingDataSource"
... // more properties
p:encryptedPassword="${myPropertey.password}"
>

因为您使用的是Spring,所以我强烈建议您查看
PropertyResourceConfigurator
类。 看

特别是查看<代码>转换属性(String FraveType,String RealTyValuy)方法,并考虑创建一个重写它的类。然后,您将能够将自定义解密逻辑添加到重写的方法中,该方法将在每次Spring访问该属性时运行

直接从文档中获取:

允许从属性资源(即属性文件)配置单个bean属性值。用于自定义配置文件。。。覆盖在应用程序上下文中配置的bean属性

布莱恩,塞缪尔

非常感谢您的快速帮助,这两种方法都能解决我的问题

我已经实现了对PropertyPlaceHolderConfigure的扩展,考虑到将来是否还会有更多的属性被编码,我不想将解密逻辑限制到DataSource

只要我的2美分,代码片段,我已经实现了,这可以帮助一些人,谁可能会发现类似的情况


文件:${foo.config.location}

下面是课堂

`公共类PropertyUtil扩展PropertyPlaceHolderConfigure{

@Override
public String convertProperty(String propertyName, String propertyValue){
    return super.convertProperty(propertyName, decrypt(propertyValue));
}


private String decrypt(String){
// logical implementation
}
`

@Override
public String convertProperty(String propertyName, String propertyValue){
    return super.convertProperty(propertyName, decrypt(propertyValue));
}


private String decrypt(String){
// logical implementation
}