一尘不染

如何在spring重写JndiObjectFactoryBean并在Java中设置解密密码

tomcat

我在tomcat中有一个数据源,该数据源具有使用某种算法加密的密码,我想在与数据库建立连接时解密该数据源。

以下是我的spring配置代码

<!--<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="${jdbc.jndiName}"/>
</bean>-->

<bean id="dataSource" class="my.app.util.EncryptedDataSource">
    <property name="jndiName" value="${jdbc.jndiName}"/>
</bean>

上面的bean是自定义的,它扩展了JndiObjectFactoryBean

public class EncryptedDataSource extends JndiObjectFactoryBean{ ... }

我在这里应该怎么做才能得到加密的密码并将其重新设置。我有我的解密算法,但是我不确定哪种超类方法可以获取我可以重新设置的密码。

请建议,我已经搜索并尝试了很多。


阅读 1066

收藏
2020-06-16

共1个答案

一尘不染

我弄清楚了,我使用了tomcat数据源的“factory”属性,而不是覆盖JndiBeanFacotry,它使您可以拥有一个自定义资源工厂类,该类在每次实例化数据源查找时都会被调用。

下面的链接指定了逐步配置,

http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-
howto.html

“添加自定义资源工厂”一节重点介绍如何编写简单的自定义资源工厂。

谢谢。

2020-06-16