2016-07-19 7 views
1

Oracleの暗号化機能を高度化する方法はありますか セキュリティをSpringのJDBCデータソース設定に変換しますか?
Spring JDBC xmlコンフィグレーションによるOracle Advanced Secuity暗号化

DBAは、クライアント側の接続に次の引数を渡すように指示しました。

sqlnet.encryption_client = requested 
sqlnet.encryption_types_client = (RC4_128) 
sqlnet.crypto_checksum_client = requested 
sqlnet.crypto_checksum_types_client = (MD5) 

Oracle Documentationによると、暗号化は、古き良きjava.util.Properties経由のOracleConnectionに引数を追加することで、シン・ドライバを設定することができます。

しかし、私は自分のSpring dataSource.xmlの設定でこれを行う方法を見つけることができません。
のdataSource Beanは正常に動作します:

<bean id="dataSource" 
    class="oracle.jdbc.pool.OracleDataSource" destroy-method="close"> 
    <property name="URL" value="${datasource.url}" /> 
    <property name="user" value="${datasource.user}" /> 
    <property name="password" value="${datasource.password}" /> 
    <property name="connectionCachingEnabled" value="true"/> 
</bean> 

しかし残念ながら、必要な特性が理解され、Spring documentationでは、以下の例外

Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'encryption_client' of bean class [oracle.jdbc.pool.OracleDataSource]


<property name="encryption_client" value="${datasource.encryption_client}"/> 
    <property name="encryption_types_client" value="${datasource.encryption_types_client}"/> 
    <property name="crypto_checksum_client" value="${datasource.crypto_checksum_client}"/> 
    <property name="crypto_checksum_types_client" value="${datasource.crypto_checksum_types_client}"/> 
  1. を持っていませんが私はeには、ほんの一握りの属性しか言及されていない。 Oracleドキュメントの例で再び見ると
  2. 、プロパティは、この OracleDataSource ods = new OracleDataSource();ods.setProperties(prop)
    ように設定されている...しかし、APIsetProperties()方法をしていません。
    (https://でdocs.oracle.com/cd/E18283_01/appdev.112/e13995/oracle/jdbc/pool/OracleDataSource.html)

私はかなり混乱している:(
すべてのヘルプまたはヒントが高く評価され

TL; TR
を春にこれらのOracleの暗号化プロパティを引き渡すためのすべてのソリューションがあります

答えて

0

セキュリティ関連の接続プロパティの名前が正しいOracleConnectionを参照してください。例については :また

Properties connProps = new Properties(); 

// For Data Integrity Check connProps.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_CHECKSUM_TYPES, "(MD5, SHA1, SHA256, SHA384 or SHA512)"); connProps.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_CHECKSUM_LEVEL, "REQUIRED"); 

// For Data Encryption connProps.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL, REQUIRED"); connProps.setProperty(OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES,"(DES40C)"); 

// OracleDataSource – Oracle JDBC Connection 
OracleDataSource ods = new OracleDataSource(); 
ods.setConnectionProperties(connProps); 

、セキュリティConnection Management StrategiesホワイトペーパーのセクションともSecurityホワイトペーパーを参照してください。

+0

ありがとうございます@Nirmala。あなたの例は正しい方向に私を押し込んだ。 XML Beanはこの点ではあまりにも制限的なようです。 – jonny

関連する問題