设置文件内容而不是信任库的路径
Setting file content instead of path for truststore
我正在通过我的 java 代码连接到 oracle ssl 侦听器。 java 代码在 AWS Lambda 中是 运行。为了通过 SSL 端口连接到 oracle,我需要通过 cwallet.sso 证书。此证书经过 base64 编码并存储在保险库中。我能够从保管库中以字符串形式获取证书的内容。我需要 base64 解码并使用内容连接到 oracle.Below 我在本地机器上使用的代码连接到 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();
ResultSet rset = stmt.executeQuery("select * from table where rownum < 10");
我正在通过我的 java 代码连接到 oracle ssl 侦听器。 java 代码在 AWS Lambda 中是 运行。为了通过 SSL 端口连接到 oracle,我需要通过 cwallet.sso 证书。此证书经过 base64 编码并存储在保险库中。我能够从保管库中以字符串形式获取证书的内容。我需要 base64 解码并使用内容连接到 oracle.Below 我在本地机器上使用的代码连接到 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();
ResultSet rset = stmt.executeQuery("select * from table where rownum < 10");