如何在Apache Tomcat 8中为Oracle数据库连接池配置加密

时间:2016-02-08 13:07:04

标签: oracle tomcat encryption connection

我有一个配置了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 + ")");

1 个答案:

答案 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

的详细信息