У нас есть файл свойств (например, db.properties
), который содержит учетные данные для доступа к базе данных. Пример:Обработка пользовательских свойств с помощью ant
db.jdbc.user=johndoe
db.jdbc.password=topsecret
У нас есть много скриптов ant, которые читают этот файл и выполняют различные задачи. Пример:
<!--Initialize the environment-->
<target name="environment">
<!--Read database connection properties-->
<property file="$../db.properties"/>
...
</target>
<target name="dbping"
description="Test the database connectivity with the current settings."
depends="environment">
...
<sql driver="oracle.jdbc.OracleDriver"
url="${db.jdbc.url}"
userid="${db.jdbc.user}"
password="${db.jdbc.password}"
classpathref="classpath.jdbc"
print="true"
showheaders="false">
SELECT 'JDBC connect: successful!' FROM dual;
</sql>
...
</target>
Теперь клиент хочет, чтобы пароль в db.Properties шифруется с помощью их шифрования LIB при условии внутри .jar файла, например:
db.jdbc.user=johndoe
db.jdbc.password.encrypted=true
db.jdbc.password=018Dal0AdnE=|ySHZl0FsnYOvM+114Q1hNA==
То, что мы хотим, чтобы добиться дешифрации с минимальными изменениями в тоннах файлов ant. Я слышал об улучшенной обработке свойств в Ant 1.8
, но мы используем Ant 1.7.1
.
Какое оптимальное решение для этого - обычная задача, какая-то магия с экземпляром PropertyHelper
, что-то еще?
Заранее благодарим за ваши намеки.
См. Этот ответ для аналогичного подхода: http://stackoverflow.com/questions/7503630/where-do-i-put-my-credentials-when-using-ivy-and-a-private-company-repository/7505364# 7505364 –