[...] Каждая машина разработки имеет свою собственную
копия файла config.xml. Все
парольные фразы (те, что для JDBC
источники данных и т. д.) в этом файле
зашифровано ...
Да, WebLogic Server шифрует все пароли в виде простого текста, хранящиеся в файле (файлах) конфигурации домена. Это сделано для предотвращения доступа к конфиденциальной информации. Когда пароли вводятся с помощью консоли администрирования или инструментов сценариев, они автоматически шифруются перед их сохранением в файлах XML конфигурации.
... и шифрование
по-видимому, использует другое семя на
каждая машина с одним и тем же паролем
имеет разные зашифрованные формы на
разные машины.
Об утилите encrypt (из утилит Oracle WebLogic Server Java) в документации сказано:
weblogic.security.Encrypt
шифрует строки открытого текста для использования с WebLogic Server. Утилита использует службу шифрования текущего каталога или службу шифрования для указанного корневого каталога домена WebLogic Server.
Примечание: Зашифрованная строка должна быть зашифрована службой шифрования в домене WebLogic Server, где она будет использоваться. В противном случае сервер не сможет расшифровать строку.
Это не упоминается в документации, но, AFAIK, Weblogic использует файл соли пароля домена (SerializedSystemIni.dat
) для шифрования строки открытого текста.
[...] Если мы просто поместим файл в CVS и обновим оттуда другие машины, зашифрованные пароли на каждой машине будут перезаписаны.
Вы можете использовать пароли в виде открытого текста в файле config.xml, хранящемся в вашей VCS (если это не проблема). На самом деле, до WebLogic Server 9.0 пароли шифровались при последующем перезапуске. Начиная с WebLogic Server 9.0, использование паролей в текстовом виде в файлах конфигурации «полностью» поддерживается только для домена разработки, и Weblogic не будет повторно шифровать пароли. В обоих случаях это позволило бы людям без проблем проверить файл конфигурации.
Существует ли задача ant (я не смог ее найти) или аналогичный механизм, который позаботился бы о правильном объединении изменений в config.xml без перезаписи зашифрованных паролей? ...
Я не уверен, что это отвечает непосредственно на ваш вопрос, но Oracle WebLogic Server предоставляет Задачи Ant для большинства (если не всех) своих утилит Java. Возможно, вы найдете там что-нибудь полезное (см. Настройка домена сервера WebLogic с помощью Ant-задачи wlconfig )
Или можно как-то указать парольные фразы в виде открытого текста и зашифровать их при первом запуске (я слабо помню, что это было возможно в предыдущих версиях, но не в 10.3).
Как я писал выше, это было поведение по умолчанию до Weblogic Server 9.0. Я не знаю, можно ли заставить это поведение для более поздних версий. Конечно, вы всегда можете использовать для этого муравей и encrypt , но, если честно, если вы позволите людям один раз видеть пароли в виде открытого текста, я не вижу смысла шифровать их после фактов.