开发者

Please advise on the exception

开发者 https://www.devze.com 2023-01-16 13:58 出处:网络
Can any body tell me what this exception means, its confusing because I tried all possible ways to change the path of the keystore.. doesn\'t work.

Can any body tell me what this exception means, its confusing because I tried all possible ways to change the path of the keystore.. doesn't work.

Environment: ORACLE database server, configuring SSL

Exception in thread "main" java.sql.SQLException: Io exception: 

java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
 at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
 at oracle.jdbc.driver.Physica开发者_开发知识库lConnection.<init>(PhysicalConnection.java:414)
 at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
 at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
 at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
 at java.sql.DriverManager.getConnection(DriverManager.java:582)
 at java.sql.DriverManager.getConnection(DriverManager.java:154)
 at project1.JDBCSSLTest.getConnection(JDBCSSLTest.java:42)
 at project1.JDBCSSLTest.run(JDBCSSLTest.java:22)
 at project1.JDBCSSLTest.main(JDBCSSLTest.java:49)

The java class I am using is.

package project1;

import java.security.Security;

import java.sql.Connection;
import java.sql.SQLException;

import java.sql.*;
import oracle.jdbc.OracleDriver;

public class JDBCSSLTest
{

public JDBCSSLTest()
{
 // must enable this
 Security.addProvider(new oracle.security.pki.OraclePKIProvider());
}

public void run () throws SQLException
{
 Connection conn = getConnection();
 System.out.println("Auto Commit = " + conn.getAutoCommit());
 conn.close();
}

public static Connection getConnection() throws SQLException
{
 String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)" +
              "(HOST=localhost)(PORT=2484))" +
              "(CONNECT_DATA=(SERVICE_NAME=orcl)))";
 java.util.Properties props = new java.util.Properties();

 props.setProperty("user", "system");
 props.setProperty("password", "weblogic");
    props.setProperty("javax.net.ssl.trustStore","C://lib//ewallet.p12");
    props.setProperty("javax.net.ssl.trustStoreType","PKCS12");
    props.setProperty("javax.net.ssl.trustStorePassword","weblogic123");
  props.setProperty("oracle.net.ssl_cipher_suites", "SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA");

 DriverManager.registerDriver(new OracleDriver());
 Connection conn = DriverManager.getConnection(url, props);
 return conn;
}

public static void main(String[] args) throws SQLException
{
 JDBCSSLTest dSTest = new JDBCSSLTest();
 dSTest.run();
 System.out.println("all done..");
}
}


From this Oracle document:

“java.sql.SQLException: Io exception: java.lang.RuntimeException:
 Unexpected error: java.security.InvalidAlgorithmParameterException: 
 the trustAnchors parameter must be non-empty”: 

if you are using PKCS12 wallets and Oracle’s PKI provider isn’t properly enabled. This exception comes from the PKCS12 implementation from Sun (Sun’s PKI provider) which isn’t compatible with Oracle wallets. Oracle’s PKI provider must be properly enabled for PKCS12 either statically or dynamically if you use PKCS12 wallets.

Enabling the PKI provider is described in section 2.2.4 of the same document.


I'm not familiar this with this but going by the exception information along your user code was triggered

   at project1.JDBCSSLTest.getConnection(JDBCSSLTest.java:42)

and the runtime is missing a required property when retrieving a connection

Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

It looks as if you haven't configured this required 'trustAnchors' property.

0

精彩评论

暂无评论...
验证码 换一张
取 消