我有如下的Spring JPA配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" >
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" ref="vendorAdaptor" />
<property name="packagesToScan" value="pk.training.model"/>
<property name="jpaProperties">
<props>
...
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
我有属性文件,其中我有密码,如
jdbc.password=abc123
当我的应用程序运行时,spring上下文加载并连接到数据库。精细。现在我想问一下,假设我以加密形式提供密码,比如
jdbc.password=$53ytg#@!
现在JPA如何连接到数据库? JPA是否有任何属性可以自行处理加密密码,或者我必须自己做一些事情?
感谢。
答案 0 :(得分:1)
你必须自己做这件事。安全方面,它并没有增加太多。攻击者可以
因此,在大多数情况下,要做的事情是将数据库用户和密码放在服务器磁盘上的文件中,并确保只有经过授权的人才能访问此文件(加上您的应用程序可以读取它)。加密密码只会添加obscurity, no real security。