江湖开发者 | Java粉
网站地图
首页> Java> druid用户名加密
2017
07-28

druid用户名加密

druid用户名加密

  1. druid默认是不支持用户名加密的,有两种方式可以扩展用户名加密


    >. 继承DruidDataSource 重写setUsername()

     >. 继承DruidPasswordCallback 重写setProperties()


一、继承DruidDataSource 重写setUsername()方式

public class MyDruidDataSource extends DruidDataSource{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	
	
	@Override
	public void setUsername(String username) {
		
		try {
			username=ConfigTools.decrypt(username);
		} catch (Exception e) {
			e.printStackTrace();
		}
		super.setUsername(username);
	}
}

数据源配置

<bean name="dataSource_jhkz" class="com.alibaba.druid.pool.DruidDataSource" <!--改名自定义的datasource-->
		init-method="init" destroy-method="close">
		<property name="url" value="${jdbc.url.jhkz}" />
		<property name="username" value="${jdbc.username.jhkz}" />
		<property name="password" value="${jdbc.password.jhkz}" />
		
		<!-- state开启Druid的监控统计功能,config开启密码加密 -->
		<property name="filters" value="stat,config" /> <!--逗号分隔-->
		<property name="connectionProperties" value="config.decrypt=true" />
		

二、继承DruidPasswordCallback 重写setProperties()

public class DBPasswordCallback extends DruidPasswordCallback {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 
	 *  <!--注入bean 数据源解密 -->  
	    <bean id="dbPasswordCallback" class="com.ultrapower.sys.core.datasource.DBPasswordCallback" lazy-init="true" /> 
	    
	    <!--传递password加密后的值到DBPasswordCallback,多参数用分号分隔-->  
	    <property name="connectionProperties" value="password=${jdbc.password.jhkz};username=${jdbc.password.jhkz}" />
	    <property name="passwordCallback" ref="dbPasswordCallback" />  
	 * 
	 */
	
	public void setProperties(Properties properties) {
        super.setProperties(properties);  
        String password = properties.getProperty("password");  
        if (StringUtils.isNotEmpty(password)) {  
	        try {
				String decrypt = ConfigTools.decrypt(password);
				setPassword(decrypt.toCharArray());  
			} catch (Exception e) {
				e.printStackTrace();
			}
        }  
    }  
}


Java江湖     
全部评论:

表情验证码,看不清楚,换一张

随机文章

云标签

公众号

微信

分享:分享我们的知识;专注:专注个人技术的提升;