猿问

设置文件内容而不是信任库的路径

我正在通过我的Java代码连接到oracle ssl侦听器。Java代码在AWS Lambda中运行。为了通过SSL端口连接到oracle,我需要通过cwallet.sso证书。该证书是base64编码的,并存储在Vault中。我可以从Vault中以String形式获取证书的内容。我需要对base64进行解码并使用其内容来连接到oracle。在我在本地计算机中用于连接到oracle ssl端口的代码下面。由于我从Vault中获取数据作为流,是否有一种方法可以提供证书(cwallet.sso),而无需创建文件?


DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());                                                                                           

      Security.addProvider(new oracle.security.pki.OraclePKIProvider());                                                                                             

      String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=<hostname>)(PORT=1522))(CONNECT_DATA=(SID=<SID>)))";      

      java.util.Properties info = new java.util.Properties();                                                                                                        

      ClassLoader classLoader = getClass().getClassLoader();                                                                                                         

      info.setProperty("javax.net.ssl.trustStore", Paths.get(classLoader.getResource("certs/cwallet.sso").toURI()).toString());                                      

      info.setProperty("javax.net.ssl.trustStoreType", "SSO");                                                                                                       

      info.setProperty("user", "username");                                                                                                                        

      info.setProperty("password", "password");                                                                                                                       


      Connection conn = DriverManager.getConnection(url, info);                                                                                                      

      Statement stmt = conn.createStatement();                                                                                                                       



神不在的星期二
浏览 165回答 1
1回答

眼眸繁星

通常,可以从内存中加载证书,例如此处概述的,但是在当前上下文中,我们受到Oracle驱动程序支持的限制。驱动器的配置是描述在这里,它看起来并不像什么,除了支持基于文件的信任存储。由于Oracle驱动程序是封闭源代码,因此很难提供更明确的答案。
随时随地看视频慕课网APP

相关分类

Java
我要回答