如何使用spring
保护共享托管环境中的数据库用户名和密码<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql:///BUSINESS</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value>password</value></property>
</bean>
答案 0 :(得分:0)
我不知道任何针对此的Spring特定解决方案。
在共享托管环境中,应确保文件不是公共可读的,因此其他用户无法查看您文件的内容。如果是共享应用程序服务器,则应用程序服务器应位于同一组中,因此只有应用程序服务器才能访问您的文件。
应用程序绝不应使用MySql root密码。您应该创建一个对特定模式具有有限权限的MySql帐户(例如,只能执行DML语句而不能执行DDL语句的用户)。
要将用户名/密码保留在纯文本文件之外,您可以在Java类中对配置进行硬编码(这是基本的security through obscurity)。替换配置:
<bean id="dataSource"
class="my.app.CustomDriverManagerDataSource" >
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
</bean>
并将此类添加到您的类路径
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class CustomDriverManagerDataSource extends DriverManagerDataSource {
public DriverManagerDataSource() {
super("jdbc:mysql:///BUSINESS","root","password");
}
}