Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Conecte-se ao Oracle DB do Spring-jdbc com autenticação do Oracle Wallet


Você menciona "teste de aplicativo simples", então estou assumindo que você precisa configurar seus testes de unidade. Em uma classe de configuração de teste de unidade (por exemplo, class TestSpringWebConfig extends SpringWebConfig ) isso lhe dá uma fonte de dados Oracle usando uma carteira (bônus:o seguinte usa uma conta de banco de dados 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;

Isso também pressupõe que você tenha o seguinte em seu JDK:

Em JAVA_HOME/jre/lib/security/java.security, adicione o seguinte à "Lista de provedores":
security.provider.11=oracle.security.pki.OraclePKIProvider

E adicione os seguintes jars do Oracle para JAVA_HOME/jre/lib/ext:
  • osdt_cert.jar
  • osdt_core.jar
  • oraclepki.jar

E, claro, todos os itens acima assumem que o jar ojdbc7 já está no classpath do seu aplicativo.