Oracle
 sql >> Base de données >  >> RDS >> Oracle

Connectez-vous à Oracle DB à partir de Spring-jdbc avec l'authentification Oracle Wallet

Vous mentionnez "test d'application simple", donc je suppose que vous devez configurer vos tests unitaires. Dans une classe de configuration de test unitaire (par exemple class TestSpringWebConfig extends SpringWebConfig ) cela vous donne une source de données Oracle à l'aide d'un portefeuille (bonus :ce qui suit utilise un compte de base de données 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;

Cela suppose également que vous avez les éléments suivants dans votre JDK :

Dans JAVA_HOME/jre/lib/security/java.security, ajoutez ce qui suit à la "Liste des fournisseurs" :

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

Et ajoutez les fichiers jar suivants d'Oracle à JAVA_HOME/jre/lib/ext :

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

Et bien sûr, tout ce qui précède suppose que le fichier jar ojdbc7 se trouve déjà dans le chemin de classe de votre application.