Работа с разными версиями Hibernate libs - PullRequest
0 голосов
/ 11 октября 2011

У меня есть приложение, использующее базу данных 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>

Я не знаю, всегда ли это так, но, по сути, при запросе пользователя он автоматически расшифровывает их пароль, поэтому он имеет открытый текст.

ТеперьВ той же базе данных запущено новое веб-приложение (назовите его webapp2).Этот код шифрует пароли по-разному и неразборчиво.

То, что меня попросили сделать, - это перенести старых пользователей на «новый путь», а я создал проект maven с 3 модулями:

  • module1 (он же oldie) должен просто иметь возможность запрашивать базу данных старым способом (чтобы при каждом запросе к пользовательской таблице я мог иметь пароль пользователя в открытом тексте)
  • module2 (он же newie) должен просто запросить базу данных по-новому.
  • module3 должен иметь один фиктивный класс (на данный момент эточто-то вроде), который использует UserService из module1 и UserService из module2 соответственно для чтения пароля пользователя (чистый текст) и установки его по-новому.

ВОПРОС: То, с чем я сталкиваюсь, - это целоемного проблем с module3 , когда приходится иметь дело с разными версиями hibernate libs , а что нет.

На моей конфигурации module3 (они все весенние приложения) IАвтопроводкасервисы и ошибки как от module1, так и от module2 создают много беспорядка, что приводит к проблемам.

Похоже, что происходит то, что существует смесь зависимостей, которая делает невозможным создание экземпляров sessionFactories или daos (на данный момент).

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 11 октября 2011

Я бы не пытался использовать обе версии Hibernate одновременно. Вы могли бы

  • извлекает обе части шифрования / дешифрования в небольшом служебном классе и просто использует JDBC для дешифрования старым способом и шифрования новым способом.
  • или просто запустите первый проход с первым модулем, чтобы извлечь все пароли в виде открытого текста и поместить их в файл или в таблицу выделенной базы данных, затем запустите второй проход со вторым модулем, чтобы извлечь пароли в виде открытого текста и сохраните их в сущностях, чтобы зашифровать их, используя новый метод.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...