我已遵循this document,但无法设置SSL JDBC连接。获取异常
Java.sql.SQLRecoverableException:IO错误:主机中的软件已中止已建立的连接,连接中断16毫秒,身份验证中断0毫秒。在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 link,但无人应答。但这正是我正在尝试的。
2条答案
按热度按时间cx6n0qe31#
您能指定您正在使用的JDBC驱动程序版本和数据库服务器版本吗?另外,您是否在类路径中使用oracepki.jar、osdt_core.jar和osdt_cert.jar?您可以 checkout SSL blog for 12.2 and lower
dxxyhpgq2#
我知道尼尔马拉会像预期的那样支持你。然而,除了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