sql >> Base de Datos >  >> RDS >> Oracle

Conéctese a Oracle DB desde Spring-jdbc con la autenticación de Oracle Wallet

Usted menciona "prueba de aplicación simple", así que supongo que necesita configurar sus pruebas unitarias. En una clase de configuración de prueba unitaria (por ejemplo, class TestSpringWebConfig extends SpringWebConfig ) esto le da una fuente de datos de Oracle usando una billetera (bonificación:lo siguiente usa una cuenta de base de datos proxy):

System.setProperty("oracle.net.tns_admin", "path/to/your/tnsnames");

OracleDataSource ds = new OracleDataSource();

Properties props = new Properties();
props.put("oracle.net.wallet_location", "(source=(method=file)(method_data=(directory=path/to/your/wallet)))");

/*
  Use the following only if you have a proxy user database account instead of a normal DB account
  A test user's username could go here though
*/
props.put(OracleConnection.CONNECTION_PROPERTY_PROXY_CLIENT_NAME, "proxy-user-name"); 

ds.setConnectionProperties( props );
ds.setURL("jdbc:oracle:thin:/@dbAlias"); //dbAlias should match what's in your tnsnames

return ds;

Esto también supone que tiene lo siguiente en su JDK:

En JAVA_HOME/jre/lib/security/java.security, agregue lo siguiente a la "Lista de proveedores":

security.provider.11=oracle.security.pki.OraclePKIProvider

Y agregue los siguientes archivos jar de Oracle a JAVA_HOME/jre/lib/ext:

  • osdt_cert.jar
  • osdt_core.jar
  • oraclepki.jar

Y, por supuesto, todo lo anterior supone que el jar ojdbc7 ya está en el classpath de su aplicación.