#java #spring #aes #applicationcontext
#java #spring #aes #applicationcontext
Вопрос:
Есть ли какой-либо способ, которым я мог бы зашифровать записи контекста приложения, например:
<bean id="securityDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.0.1/schemaname?useUnicode=trueamp;amp;characterEncoding=utf-8"/>
<property name="username" value="{this should be encrypted}"/>
<property name="password" value="{this should be encrypted}"/>
</bean>
Что я хочу сделать, так это зашифровать имя пользователя и пароль.
Ответ №1:
Вам нужно будет экстернализировать свойства с помощью propertyPlaceHolder . Как только вы это сделаете, вы можете использовать Jasypt—версию property place holder, которая поддерживает шифрование.
Комментарии:
1. Здравствуйте, спасибо за информацию. Наша команда протестировала Jasypt, и это сработало. 🙂
Ответ №2:
Насколько я знаю, шифрования нет.
Но вы могли бы экстернализировать свойства или полный источник данных в контексте сервера приложений.
Ответ №3:
Вместо этого вы могли бы создать соединение jndi. В tomcat context.xml например, вы добавляете. Таким образом, вы не сохраняете никакой информации в приложении или файле свойств. Конечно, вы должны установить разрешения на context.xml …
<Resource name="jdbc/[YourDatabaseName]"
auth="Container"
type="javax.sql.DataSource"
username="[DatabaseUsername]"
password="[DatabasePassword]"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://[yourserver]:3306/[yourapplication]"
maxActive="15"
maxIdle="3"/>