休止状態の一種の古いバージョンを使用する、EXAMPLE と呼ばれる DB を使用する既存のアプリケーションがあります。
ユーザーのパスワードは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 (別名 newie) は、新しい方法でデータベースにクエリを実行するだけです。
- module3には、module1 の UserService と module2 の UserService をそれぞれ使用してユーザー パスワード (クリア テキスト) を読み取り、新しい方法に戻すダミー クラスが 1 つある必要があります。
問題: 私が直面しているのは、module3がさまざまなバージョンの休止状態ライブラリを処理しなければならないなど、さまざまな問題に直面していることです。
module3の構成(これらはすべて Spring アプリケーションです) で、module1 と module2 の両方からサービスと daos を自動配線しているため、多くの混乱が生じ、最終的には問題が発生します。
起こっているように見えるのは、sessionFactories または daos (今のところ) のインスタンス化を不可能にする依存関係が混在していることです。
どんな助けでも大歓迎です。