Soy muy nuevo en Spring framework y estoy usando Spring framework para administrar las conexiones de mi base de datos, etc. La aplicación lee mis parámetros de conexión db desde un archivo de propiedades. Lo que necesito es almacenar mi contraseña de conexión en el archivo de propiedad como encriptada. Aquí está mi archivo de fuente de datos XMLCómo almacenar la contraseña como encriptada en el archivo de propiedades en Spring
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>file:${DBConfigFile}</value>
</property>
</bean>
<bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialPoolSize"><value>3</value></property>
<property name="minPoolSize"><value>3</value></property>
<property name="maxPoolSize"><value>50</value></property>
<property name="idleConnectionTestPeriod"><value>200</value></property>
<property name="acquireIncrement"><value>1</value></property>
<property name="maxStatements"><value>0</value></property>
<property name="numHelperThreads"><value>3</value></property>
</bean>
</beans>
estoy Thiking a escribir la contraseña cifrada en el archivo de propiedades y me pregunto si la primavera puede descifrar con un algoritmo de forma automática. Es posible con la configuración Gracias de antemano.
Tiene usted razón, pero lo menciono acerca de un algoritmo privado de la primavera, no pública. Gracias por su respuesta, buscaré la certificación SSL. – tace
@tace Algoritmo privado para la seguridad es oxímoron. http://en.wikipedia.org/wiki/Security_through_obscurity. Entonces, la única manera de hacerlo bien es usar la protección del sistema de operación (Windows NTLM, Unix pam, etc.), podría proporcionar cierta protección. – kan
Con las credenciales encriptadas en sus propiedades, puede mantenerlas controladas (no junto con la clave privada, obviamente) junto con el servicio que las necesita, y se implementan automáticamente al implementar el servicio. Lo único que debe mantenerse fuera de la línea de despliegue es la clave privada para descifrar las propiedades, que debería ser mucho menos propensa a errores que mantener toda la configuración fuera del ciclo de vida normal del servicio. –