我有一个使用名为EXAMPLE 的数据库的现有应用程序,它使用一种旧版本的hibernate。
用户的密码存储为org.jasypt.hibernate.type.EncryptedStringType
<typedef name="encryptedString" class="org.jasypt.hibernate.type.EncryptedStringType">
<param name="encryptorRegisteredName">jasyptHibernateEncryptor</param>
</typedef>
<property name="password" type="encryptedString">
<column name="pwd" length="254" not-null="true" />
</property>
我不知道它是否总是这样,但基本上,在查询用户时,它会自动解密他们的密码,所以它是明文的。
现在,在同一个数据库上,正在运行一个新的 Web 应用程序(称为 webapp2)。这个以不同的方式和不可解密的方式加密密码。
我被要求做的是将旧用户迁移到“新方式”,而我所做的是创建一个包含 3 个模块的 maven 项目:
- module1(又名oldie)应该能够以旧方式查询数据库(这样对于用户表上的每个查询,我都可以以明文形式获得用户密码)
- module2 (aka newie) 应该以新的方式查询数据库。
- module3应该有一个虚拟类(现在它是一个 junit 的东西),它分别使用 module1 中的 UserService 和 module2 中的 UserService 来读取用户密码(明文)并将其设置回新的方式。
问题:我面临的是 module3必须处理不同版本的休眠库以及其他问题的一大堆问题。
在我的module3配置(它们都是 spring 应用程序)中,我正在自动装配来自 module1 和 module2 的服务和 daos,这会造成很多混乱,最终会遇到麻烦。
似乎正在发生的事情是,存在多种依赖关系,使得 sessionFactories 或 daos 的实例化(目前)变得不可能。
任何帮助将不胜感激。