ibatis自定义DataSourceFactory
来源:互联网 发布:手机有网络不能看视频 编辑:程序博客网 时间:2024/06/10 16:34
今天收到客户的一个要求,把数据源配置文件中的用户名和密码做加密处理,经过对ibatis源码的了解,做出了如下解决方案:
1.创建自定义类
EncryptDataSourceFactory 实现接口com.ibatis.sqlmap.engine.datasource.DataSourceFactory
public class EncryptDataSourceFactory implements DataSourceFactory { private static final Logger LOGGER = Logger.getLogger(EncryptDataSourceFactory.class); private DataSource dataSource; @Override public void initialize(Map map) { String username = (String) map.get("JDBC.Username"); String password = (String) map.get("JDBC.Password"); username = EncryptUtil.decodeByJackHash(username); // password解密 password = EncryptUtil.decodeByJackHash(password); map.put("JDBC.Username", username); map.put("JDBC.Password", password); dataSource = new SimpleDataSource(map); } @Override public DataSource getDataSource() { return dataSource; }}
2.sqlMapConfig配置文件修改
添加配置
<typeAlias alias="ENCRYPT" type="***.***.***.EncryptDataSourceFactory" />
修改dataSource的type,对应添加配置中的alias
<dataSource type="ENCRYPT">
完整配置如下
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN""http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig> <settings cacheModelsEnabled="true" lazyLoadingEnabled="true" enhancementEnabled="true" errorTracingEnabled="true" maxSessions="1024" maxTransactions="512" maxRequests="2048" useStatementNamespaces="true" /> <!-- 使用JDBC的事务管理 --> <typeAlias alias="ENCRYPT" type="***.***.***.EncryptDataSourceFactory" /> <transactionManager type="JDBC"> <!-- 数据源 --> <dataSource type="ENCRYPT"> <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.50.122:1521:****" /> <property name="JDBC.Username" value="TllOYm4wM2g=" /> <property name="JDBC.Password" value="TllOYm4wM2g=" /> </dataSource> </transactionManager> <!-- 这里可以写多个实体的映射文件 --></sqlMapConfig>
如此就完成了对配置文件中用户名密码的加密处理,但是做完后,仔细想想,这种处理没什么必要,当某人可以接触到配置文件时,也就可以找到相关jia包,反编译出来,什么都知道了。
阅读全文
0 0
- ibatis自定义DataSourceFactory
- DataSourceFactory
- ibatis自定义返回列
- mybatis 3.4.2 DataSourceFactory与DataSource
- IBATIS 向procedure传入自定义类型
- ibatis 复杂类型(用户自定义类型)
- 记一次iBatis自定义sql的坑
- ibatis
- iBatis
- ibatis
- iBatis
- ibatis
- ibatis
- IBATIS
- ibatis
- iBATIS
- ibatis
- ibatis
- 3-sum问题
- RHEL7.2 安装Oracle11g 弹窗异常问题
- unity—Tab键切换输入框
- 欢迎使用CSDN-markdown编辑器
- 利用Scanner类从输入流中获取数据以及next()、nextXxx()、nextLine()方法辨析
- ibatis自定义DataSourceFactory
- XYNUOJ 1095 折半查找
- Java中DOS命令记录
- Ubuntu系统打不开windows磁盘文件
- Glide使用教程-附带链接
- 【BigHereo 9】-----设计模式之动态代理
- Android 7.0文件权限变更(下载,拍照等)
- 使用junit进行多线程并发测试
- Android使用指南之sharedpreference