Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verbinden Sie sich von Spring-jdbc mit Oracle Wallet-Authentifizierung mit Oracle DB

Sie erwähnen "einfachen Anwendungstest", also gehe ich davon aus, dass Sie Ihre Komponententests konfigurieren müssen. In einer Einheitentest-Konfigurationsklasse (z. B. class TestSpringWebConfig extends SpringWebConfig ) erhalten Sie eine Oracle-Datenquelle mit einer Brieftasche (Bonus:Folgendes verwendet ein Proxy-Datenbankkonto):

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;

Dies setzt auch voraus, dass Sie Folgendes in Ihrem JDK haben:

Fügen Sie in JAVA_HOME/jre/lib/security/java.security Folgendes zur „Liste der Anbieter“ hinzu:

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

Und fügen Sie die folgenden JAR-Dateien von Oracle zu JAVA_HOME/jre/lib/ext hinzu:

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

Und natürlich wird bei all dem Obigen davon ausgegangen, dass sich das ojdbc7-Jar bereits im Klassenpfad Ihrer Anwendung befindet.