weixin_42239508
张西军
2009-03-16 17:11

spring配置连接池,数据库密码加密问题

已采纳

以下方式配置数据库连接池,使用没问题。
现在我想利用RSA算法加密数据库密码“1234”,不知应该做。谢谢!
[code="java"]









[/code]
[code="java"]
package yxkh.common;

import java.sql.Connection;

public interface DatabaseConnection {

public Connection getConnection();

}
[/code]
[code="java"]
package yxkh.common;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class TeradataConnection implements DatabaseConnection {
private static Log log = LogFactory.getLog(TeradataConnection.class);

private DataSource dataSource; 

public TeradataConnection() {}

public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
}

public DataSource getDataSource() {
    return dataSource;
} 

@Override
public Connection getConnection() {
    Connection conn = null;

    try {
        conn = dataSource.getConnection();
    } catch (SQLException e) {
        log.error("连接数据库失败", e);
    } 

    return conn;
}

}
[/code]
使用代码
[code="java"]
ApplicationContext ctx = new ClassPathXmlApplicationContext("dataAccessContext.xml");
DatabaseConnection db = (DatabaseConnection) ctx.getBean("dbConn");
...
[/code]

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • wanghaolovezlq wanghaolovezlq 12年前

    你可以继承org.apache.commons.dbcp.BasicDataSource,重写setPassword方法嘛,解析RSA算法加密数据库密码

    点赞 评论 复制链接分享
  • asuncool asuncool 8年前

    这种方法入侵太强了,不好,采用如下方法吧:
    [url]http://www.yihaomen.com/article/java/420.htm[/url]

    点赞 评论 复制链接分享
  • book_Fdzdwx book_Fdzdwx 12年前

    配置文件中写入加密后的数据库密码
    TeradataConnection 中添加spring的init方法
    [code="java"]
    public void init(){
    BasicDataSource source = (BasicDataSouce)dataSource;
    //解密
    String decoded = XXXUtils.decode(source.getPassword());
    source.setPassword(decoded);
    }
    [/code]

    点赞 评论 复制链接分享

相关推荐