我在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{ ... }
我在这里应该怎么做才能得到加密的密码并将其重新设置。我有我的解密算法,但是我不确定哪种超类方法可以获取我可以重新设置的密码。
请建议,我已经搜索并尝试了很多。
我弄清楚了,我使用了tomcat数据源的“factory”属性,而不是覆盖JndiBeanFacotry,它使您可以拥有一个自定义资源工厂类,该类在每次实例化数据源查找时都会被调用。
下面的链接指定了逐步配置,
http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources- howto.html
“添加自定义资源工厂”一节重点介绍如何编写简单的自定义资源工厂。
谢谢。