[英]Exception during JDBC SSL connection with Oracle
我已關注此文檔,但無法設置 SSL JDBC 連接。 獲取異常
java.sql.SQLRecoverableException: IO 錯誤:已建立的連接被主機中的軟件中止,連接失效 16 毫秒,身份驗證在 oracle.jdbc.driver.T4CConnection.handleLogonIOException(T4CConnection.java:915)
目前我的 getConnection 方法如下所示:有人能指出我這里出了什么問題嗎?
public static java.sql.Connection getConnection(String user, String password) throws MalformedURLException, InstantiationException, IllegalAccessException, ClassNotFoundException
{
String trustStoreWalletPath="C://input//cwallet.sso" , keyStoreWalletPath="C://input//cwallet.sso";
Security.addProvider(new oracle.security.pki.OraclePKIProvider());
Security.insertProviderAt(new oracle.security.pki.OraclePKIProvider(),3);
Properties property = new Properties();
property.setProperty("oracle.net.authentication_services","(TCPS)");
property.setProperty("javax.net.ssl.trustStore", trustStoreWalletPath);//
property.setProperty("javax.net.ssl.trustStoreType", "SSO");
property.setProperty("javax.net.ssl.keyStore", keyStoreWalletPath);
property.setProperty("javax.net.ssl.keyStoreType", "SSO");
String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=xx.dm.xyz.com)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=xx.dm.xyz.com)))";
property.setProperty("user", user);
property.setProperty("password", password);
try {
Connection c = DriverManager.getConnection(url, property);
return c;
} catch (SQLException throwables) {
throwables.printStackTrace();
return null;
}
}
找到一個 SOF 鏈接,但沒有得到答復。 但這正是我正在嘗試的。
您能指定您正在使用的 JDBC 驅動程序版本和數據庫服務器版本嗎? 另外,您是否在類路徑中使用 oraclepki.jar、osdt_core.jar 和 osdt_cert.jar? 您可以查看12.2 及更低版本的 SSL 博客
我知道 Nirmala 正如預期的那樣支持你。 但是,除了 Oracle 的官方資源之外,這里還有一個不錯的資源可能會對您有所幫助 - https://www.thesslstore.com/blog/activate-ssl-oracle-jdbc-thin-driver/
您還可以在下面找到有關如何從官方 Java SE 文檔中調試 SSL/TLS 連接的提示。 https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.