我有一个配置了Oracle数据库连接池的Apache Tomcat 8(使用context.xml文件)。 此外,我在此服务器上运行了一个Web应用程序。 现在我需要为从Oracle数据库连接池中获取的连接添加加密。
如何在Tomcat中向Oracle数据库连接池配置添加属性?
我的context.xml文件:
<Context>
<Resource maxWait="-1"
maxIdle="10"
maxActive="20"
password="password "
username="username"
url="jdbc:oracle:thin:@(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = host.ttt.intranet)
(PORT = 2000))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)"
driverClassName="oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
auth="Container"
name="jdbc/Ora"/>
</Context>
对于独立应用程序,我只需添加属性作为方法的参数 java.sql.DriverManager.getConnection(String url,Properties info)
Properties info= new Properties();
info.setProperty(oracle.jdbc.OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL, oracle.net.ano.AnoServices.ANO_REQUIRED);
info.setProperty(oracle.jdbc.OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES, "( "+ oracle.net.ano.AnoServices.ENCRYPTION_AES256 + ","+ oracle.net.ano.AnoServices.ENCRYPTION_AES192 + ","+ oracle.net.ano.AnoServices.ENCRYPTION_AES128 + ")");
答案 0 :(得分:0)
我认为您只需添加connectionProperties属性即可。例如:
<Context>
<Resource maxWait="-1"
maxIdle="10"
maxActive="20"
password="password "
username="username"
url="jdbc:oracle:thin:@(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = host.ttt.intranet)
(PORT = 2000))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)"
driverClassName="oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
auth="Container"
name="jdbc/Ora"
connectionProperties="oracle.net.encryption_client=REQUESTED"/>
</Context>
See https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/tomcat/dbcp/dbcp2/BasicDataSource.html#setConnectionProperties-java.lang.String-
有关如何设置connectionProperties
的详细信息