我试图强制我的客户端应用程序使用 AES256 而不是 RC4_256 连接到加密的 Oracle 11g 服务器。我们已获悉 RC4_256 加密类型将“很快”禁用。
我们使用最新的 11g 驱动程序和 c3p0 作为我们的连接池。下面是bean配置。
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.OracleDriver"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<!-- other pool properties -->
<property name="properties">
<props>
<prop key="user">${jdbc.username}</prop>
<prop key="password">${jdbc.password}</prop>
<!-- this is one set of many I've tried -->
<prop key="oracle.net.encryption_client">REQUIRED</prop>
<prop key="oracle.net.encryption_types_client">( AES256 )</prop>
</props>
</property>
</bean>
我使用 oracle.net.encryption_types_client 和 oracle.net.encryption_client、CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL、CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES 尝试了许多排列。我在 Oracle 文档中将它们命名为 Java 属性等。
除了 RC4_256 之外,我无法让它连接。
我在数据库服务器上使用以下查询来查看我的客户端是如何连接的。v$session_connect_info 表中的 Network_Service_Banner 显示了它是如何连接的。这是我收到的当前消息
Oracle Advanced Security:适用于 Solaris 的 RC4_256 加密服务适配器:版本 11.2.0.3.0 - 产品
select s.username,s.machine,s.program,S.LOGON_TIME,s1.*
from v$session s, v$session_connect_info s1
where s.sid = s1.sid and s.username in ('MYAPP') and s.machine = 'MY-PC'
order by S.LOGON_TIME DESC, s.sid
任何帮助都将不胜感激,因为此时我正缠绕在车轴上。