java spring中对properties属性文件加密及其解密
来源:互联网 发布:python hsv颜色直方图 编辑:程序博客网 时间:2024/05/22 00:19
之前在项目里面连接数据库需要将密码解密,而且连接好多数据库,并且有的数据库需要解密有的直接连接就可以。
这样代码的可读性特别低,在连接数据库的时候都要现连接:
Properties prop = new Properties();prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("lecture.properties"));Session s = Session.getInstance(prop);// OA数据库连接地址String oaIp = s.getProperty("oaIp");Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:" + "thin:@" + oaIp;// OA用户名String user = s.getProperty("oaUsername");// OA密码String password = s.getProperty("oaPassword");PropertiesEncryptFactoryBean encryptor = new PropertiesEncryptFactoryBean();
那么我们可以将数据库的连接信息放到配置文件里面,并且在配置文件解密,这样在连接数据库的时候只需在选择加载那个连接:
(1)在spring的某一个xml配置文件中加入加载解密的配置属性代码:
这里的classpath一定别写错了
<bean id="environmentVariablesConfiguration" class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig"><property name="algorithm" value="PBEWithMD5AndDES" /><property name="password" value="jesong" /></bean><bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor"><property name="config" ref="environmentVariablesConfiguration" /></bean><bean id="propertyConfigurer"class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer"><constructor-arg ref="configurationEncryptor" /><property name="ignoreResourceNotFound" value="false"/><property name="locations"><list><value>classpath:config.properties</value></list></property></bean>(2)数据源配置
<!-- 数据源配置, 使用 BoneCP 数据库连接池 --><bean id="OAdataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass --> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /><!-- 基本属性 url、user、password --><property name="url" value="${oaIp}" ></property><property name="username" value="${oaUsername}" /><property name="password" value="${oaPassword}" /></bean><bean id="gddataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass --> <property name="driverClassName" value="${jdbc.driver}" /><!-- 基本属性 url、user、password --><property name="url" value="${gdIp}" /><property name="username" value="${gdUsername}" /><property name="password" value="${gdPassword}" /></bean>
(3)在相应的需要加载哪一个数据库:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/spring/datasource.xml");DriverManagerDataSource dataSource=(DriverManagerDataSource) applicationContext.getBean("OAdataSource");System.out.println(dataSource.getUrl());con=dataSource.getConnection();System.out.println("OA数据库连接成功!");(4)另外在数据库配置文件中config.properties文件中,如果哪一个需要解密,那么需要加上前缀ENC(**********):
password=ENC(********)
0 0
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- java spring中对properties属性文件加密及其解密
- Spring对属性文件加密解密应用
- Spring对属性文件加密解密应用详解
- Spring读取properties文件加密解密
- Spring 管理下的web项目,对Properties文件重要参数的加密解密处理
- Spring 管理下的web项目,对Properties文件重要参数的加密解密处理(续)
- Spring对外部属性文件指定的某个属性进行加密、解密
- Spring对外部属性文件指定的某个属性进行加密、解密
- java文件加密|spring属性文件加密
- java对文件进行加密解密操作
- spring加密properties文件
- spring加密properties文件
- Linux中的find大法
- [leetcode] 349. Intersection of Two Arrays 解题报告
- programcreek
- PHP错误级别
- jQuery选择器总结
- java spring中对properties属性文件加密及其解密
- Linux下通过端口Kill掉进程
- Python学习札记
- 敬意
- Node中的HTTP请求
- 三大框架配置步骤
- ZOJ 4257 MostPowerful(状压DP,简单)
- CAS 实现单点登陆之二 : CAS Client 部署
- Double和BigDecimal计算比较compareTo不一致的问题[new BigDecimal(a).compareTo(new BigDecimal(b))]