aliy 数据库连接池加密_Tomcat JNDI 数据库用户名和密码加密(数据库连接池用户和密码加密)...

Tomcat JNDI配置忽略,网上这方面的文章一大堆。废话少说直接代码。

package org.apache.tomcat.dbcp;

import javax.naming.RefAddr;

import javax.naming.Reference;

import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;

import com.yjh.commons.CryptoUtils;

public class SecurityDataSourceFactory extends BasicDataSourceFactory {

@Override

@SuppressWarnings("rawtypes")

public Object getObjectInstance(Object obj, javax.naming.Name name, javax.naming.Context nameCtx,

java.util.Hashtable environment) throws Exception {

if ((obj == null) || !(obj instanceof Reference)) {

return null;

}

Reference ref = (Reference) obj;

RefAddr ra = null;

int len = ref.size();

for (int i = 0; i 

ra = ref.get(i);

if ("password".equalsIgnoreCase(ra.getType())

|| "username".equalsIgnoreCase(ra.getType())) {

ref.remove(i);

ref.add(i, new TransformRefAddr(ra) {

private static final longserialVersionUID= 1L;

@Override

public Object transform(Object obj) {

//CryptoUtils.decode(String) 提供解密

return CryptoUtils.decode(obj.toString());

}

});

}

}

return super.getObjectInstance(obj, name, nameCtx, environment);

};

private abstract class TransformRefAddr extends RefAddr {

private static final longserialVersionUID= 1L;

private RefAddrrefAddr;

public TransformRefAddr(RefAddr refAddr) {

super(refAddr.getType());

this.refAddr = refAddr;

}

@Override

public Object getContent() {

return this.transform(refAddr.getContent());

}

public abstract Object transform(Object obj);

}

}

tomcat JNDIP配置 改为

username="加密用户名"

password="加密密码"

.....

/>

对于tomcat7+,SecurityDataSourceFacotry,CryptoUtils类不用打jar,放到tomcat HOME lib中。而以前的版本必须放到Tomcat HOME lib中,且JDBC驱动也要放到Tomcat HOME lib中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值