【发布时间】:2020-06-14 15:55:07
【问题描述】:
我在尝试使用 kerberos 身份验证连接到 oracle 时遇到问题。
之前报告了类似的问题,但在我的情况下,异常跟踪不同 -
jdbc kerberos oracle authentication
代码来自以下 oracle 文档 (connectWithDefaultUser() )
https://docs.oracle.com/cd/B28359_01/java.111/b31224/clntsec.htm#CIHCIDHF
异常跟踪是 -
Exception in thread "main" java.lang.NoSuchMethodError: sun.security.krb5.EncryptedData.reset([BZ)[B
at oracle.net.ano.AuthenticationService.a(Unknown Source)
at oracle.net.ano.AuthenticationService.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at oracle.net.ano.AuthenticationService.h(Unknown Source)
at oracle.net.ano.Ano.negotiation(Unknown Source)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:439)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1102)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:320)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:546)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:236)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
我猜测身份验证成功,但服务器端或 kerberos 设置缺少某些内容。
我正在使用 jdk1.8 和 ojdbc6
感谢您的帮助!
【问题讨论】:
-
如果您使用的是 Java 8,则应该使用 ojdbc8。
-
感谢@KarthikeyanVaithilingam,我支持您的建议,但是相同的代码在具有相同配置的 Windows 环境中运行良好,而不是在 linux 上运行良好,这是我无法弄清楚的原因。
标签: java oracle jdbc kerberos ojdbc