处理不同版本的Hibernate libs
我有一个使用名为EXAMPLE的数据库的现有应用程序,它使用一种旧版本的hibernate 用户密码存储为org.jasypt.hibernate.type.EncryptedStringType处理不同版本的Hibernate libs,hibernate,spring,maven,password-encryption,jasypt,Hibernate,Spring,Maven,Password Encryption,Jasypt,我有一个使用名为EXAMPLE的数据库的现有应用程序,它使用一种旧版本的hibernate 用户密码存储为org.jasypt.hibernate.type.EncryptedStringType <typedef name="encryptedString" class="org.jasypt.hibernate.type.EncryptedStringType"> <param name="encryptorRegisteredName">jasyptHibe
<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项目:
- 模块1(又名oldie)应该只能够在 旧方法(这样对于用户表上的每个查询,我都可以 用户密码(明文)
- module2(又称newie)应该以新的方式查询数据库
- 模块3应该有一个虚拟类(目前它是junit类) 它使用模块1中的UserService和模块2中的UserService 分别为读取用户密码(明文)并将其设置回 新方法
任何帮助都将不胜感激。我不会尝试同时使用两个版本的Hibernate。你可以
- 在一个小的实用程序类中提取加密/解密部分,只需使用JDBC使用旧方法进行解密,然后使用新方法进行加密
- 或者,只需对第一个模块运行第一个过程,以明文形式提取所有密码并将其放入文件或专用数据库表中,然后对第二个模块运行第二个过程,以提取明文密码并将其存储在实体中,以使用新方法对其进行加密