【问题标题】:jdbc kerberos oracle authentication issuejdbc kerberos oracle 身份验证问题
【发布时间】: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.8ojdbc6

感谢您的帮助!

【问题讨论】:

  • 如果您使用的是 Java 8,则应该使用 ojdbc8。
  • 感谢@KarthikeyanVaithilingam,我支持您的建议,但是相同的代码在具有相同配置的 Windows 环境中运行良好,而不是在 linux 上运行良好,这是我无法弄清楚的原因。

标签: java oracle jdbc kerberos ojdbc


【解决方案1】:

根据@Karthikeyan 的评论,将 ojdbc 升级到版本 8 解决了这个问题,虽然我不清楚它在没有升级的情况下如何在 Windows 环境中工作,如果有人能对此有所了解,那就太好了 :)

现在它工作得很好。

【讨论】:

    猜你喜欢
    • 2017-07-13
    • 2016-10-09
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多