栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Spring applicationContext.xml中使用编码的密码作为数据源

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Spring applicationContext.xml中使用编码的密码作为数据源

我回答自己的问题可能很有趣。但我还是想告诉我解决方案,其他可能也遇到过类似问题的人。

为简单起见,我使用了base64Enprer和base64Deprer。稍后,我将修改代码以使用安全/更好的加密/解密算法。

我已经使用以下代码对数据库密码(例如:root)进行了编码:

private String enpre(String str) {        base64Enprer enprer = new base64Enprer();        str = new String(enprer.enpreBuffer(str.getBytes()));        return str;    }

并将编码后的密码放在我的database.properties文件中,如下所示:

之前

db.driverClassName=com.mysql.jdbc.Driverdb.url=jdbc:mysql://localhost/myDBdb.username=rootdb.password=root

db.driverClassName=com.mysql.jdbc.Driverdb.url=jdbc:mysql://localhost/myDBdb.username=rootdb.password=cm9vdA==  (Note: enpred 'root' by using base64Enprer)

现在,我为org.apache.commons.dbcp.BasicDataSource编写了一个包装器类,并重写了setPassword()方法:

import java.io.IOException;import org.apache.commons.dbcp.BasicDataSource;import sun.misc.base64Deprer;public class MyCustomBasicDataSource extends BasicDataSource{    public CustomBasicDataSource() {        super();    }    public synchronized void setPassword(String enpredPassword){        this.password = depre(enpredPassword);    }    private String depre(String password) {        base64Deprer deprer = new base64Deprer();        String depredPassword = null;        try { depredPassword = new String(deprer.depreBuffer(password));        } catch (IOException e) { e.printStackTrace();        }    return depredPassword;    }}

这样我解码(base64Deprer)database.properties中提供的编码密码

并且还修改了springApplicationContext.xml文件中提到的我的dataSource bean的class属性。

<beans:bean id="dataSource"  destroy-method="close">    <beans:property name="driverClassName"><beans:value>${db.driverClassName}</beans:value></beans:property>    <beans:property name="url"><beans:value>${db.url}</beans:value></beans:property>    <beans:property name="username"><beans:value>${db.username}</beans:value></beans:property>    <beans:property name="password"><beans:value>${db.password}</beans:value></beans:property>

谢谢。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506966.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号