处理不同版本的 Hibernate 库
我有一个现有的应用程序,使用一个名为 Examples 的数据库,它使用一种旧版本的 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(又名新手)应该以新的方式查询数据库。
- module3 应该有一个虚拟类(目前它是一个 junit 东西) 使用 module1 中的 UserService 和 module2 中的 UserService 分别用于读取用户密码(明文)并将其设置回 新方式。
问题: 我面临的问题是 module3 必须处理不同版本的 hibernate libs 以及其他问题。
在我的 module3 配置中(它们都是 Spring 应用程序),我从 module1 和 module2 自动装配服务和 daos,造成了很多混乱,最终陷入了麻烦。
似乎正在发生的情况是,存在多种依赖关系,使得 sessionFactories 或 daos 的实例化(目前)不可能。
任何帮助将不胜感激。
I have an existing application using a DB called EXAMPLE, which uses a kind-of-old version of hibernate.
Users' passwords are stored as 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>
I don't know if it's always like this but basically, when querying for a user, it automatically decrypts their password so it is in clear text.
Now, on the very same database, there is a new web application running (call it webapp2). This one encrypts passwords differently and in an undecryptable way.
What I was asked to do is migrate the old users to "the new way", and what I did was to create a maven project with 3 modules:
- module1 (aka oldie) should just be able to query the database in the
old way (so that for every query on the user table I can have the
user's password in clear text) - module2 (aka newie) should just query the database in the new way.
- module3 should have one dummy class (for now it's a junit thingy)
that uses UserService from module1 and UserService from module2
respectively for read users password (clear text) and set it back the
new way.
THE ISSUE:
What I'm facing is a whole lot of issues with module3 having to deal with different versions of hibernate libs and what not.
On my configuration of module3 (they're all spring applications) I'm autowiring services and daos from both module1 and module2 making a lot of mess which ends up in trouble.
What appears to be happening is that there's a mix of dependencies that makes instantiations of sessionFactories or daos (for now) impossible.
Any help will be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不会尝试同时使用两个版本的 Hibernate。您可以
I wouldn't try to use both versions of Hibernate at the same time. You could