如何使用OJDBC7建立加密Oracle连接(含Wildfly配置建议)
Oracle JDBC加密配置与Wildfly优化方案
1. OJDBC7默认是否启用加密?
OJDBC7不默认开启加密。默认情况下,Thin驱动与Oracle数据库的通信是明文传输,必须显式配置加密参数才能启用数据传输加密。
2. 是否必须修改140个项目的连接配置?
完全没必要。逐个修改项目的成本太高,有集中化的全局配置方案可以规避重复劳动。
3. 更简便的加密实现方案
方案一:JVM全局参数配置
在Wildfly的启动脚本中添加以下JVM系统参数,所有使用OJDBC7的项目会自动继承加密规则,无需修改任何项目代码或连接字符串:
-Doracle.net.encryption_client=REQUIRED -Doracle.net.encryption_types_client=(AES256) -Doracle.net.crypto_checksum_client=REQUIRED -Doracle.net.crypto_checksum_types_client=(SHA1)
参数说明:强制客户端要求加密传输和数据校验,需确保Oracle服务器端已配置对应加密规则(如SQLNET.ENCRYPTION_SERVER=REQUIRED)并支持指定算法。
方案二:Wildfly数据源全局配置
统一在Wildfly的数据源配置中添加加密属性,所有项目共用该数据源即可,无需改动项目代码。
4. Wildfly数据源具体配置步骤
方式一:修改配置文件(standalone.xml/domain.xml)
找到对应Oracle数据源的配置节点,在<connection-properties>中添加加密属性:
<datasource jndi-name="java:/OracleDS" pool-name="OracleDS"> <!-- 原有配置保留 --> <connection-properties> <!-- 新增加密相关属性 --> <property name="oracle.net.encryption_client" value="REQUIRED"/> <property name="oracle.net.encryption_types_client" value="(AES256)"/> <property name="oracle.net.crypto_checksum_client" value="REQUIRED"/> <property name="oracle.net.crypto_checksum_types_client" value="(SHA1)"/> </connection-properties> </datasource>
方式二:通过Wildfly管理控制台配置
- 进入控制台的「配置」→「数据源」,选择你的Oracle数据源
- 切换到「连接属性」标签页
- 逐个添加以下键值对:
- 键:
oracle.net.encryption_client,值:REQUIRED - 键:
oracle.net.encryption_types_client,值:(AES256) - 键:
oracle.net.crypto_checksum_client,值:REQUIRED - 键:
oracle.net.crypto_checksum_types_client,值:(SHA1)
- 键:
- 保存配置后重启Wildfly或触发数据源重载
注意:若使用AES256加密,JDK8及以下版本需提前安装JCE无限制权限策略文件,JDK9+默认支持该算法。
内容的提问来源于stack exchange,提问作者fatherazrael
相关产品推荐
相关产品推荐

