【发布时间】:2017-07-13 23:06:21
【问题描述】:
使用这个例子,几乎可以让我的连接正常工作
http://blogs.nologin.es/rickyepoderi/index.php?/archives/105-Oracle-Driver-and-Kerberos.html
但在启用 kerberos 缓存和调试后,它会正确获取我的主体名称并且凭据成功,但出现与票证相关的错误。
ticket 使用 okinit (oracle kinit from oracle 12) 生成
线程“main”java.sql.SQLRecoverableException 中的异常:E/S 错误:不支持进程中的服务。 GSS-API 级别未指定故障(机制级别:一般错误(电子文本中的描述)(60) - ASN.1 意外字段编号) 在 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743) 在 oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) 在 oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 在 oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) 在 java.sql.DriverManager.getConnection(DriverManager.java:571) 在 java.sql.DriverManager.getConnection(DriverManager.java:187) 在 JdbcThin.main(JdbcThin.java:39) 原因:oracle.net.ns.NetException:不支持正在处理的服务。 GSS-API 级别未指定故障(机制级别:一般错误(电子文本中的描述)(60) - ASN.1 意外字段编号) 在 oracle.net.ano.AuthenticationService.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:415) 在 oracle.net.ano.AuthenticationService.e(未知来源) 在 oracle.net.ano.Ano.negotiation(未知来源) 在 oracle.net.ns.NSProtocol.connect(NSProtocol.java:293) 在 oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452) 在 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496) ... 6 更多 原因:GSSException:在 GSS-API 级别未指定故障(机制级别:一般错误(电子文本中的描述)(60)-ASN.1 意外字段编号) 在 sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:710) 在 sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:248) 在 sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179) ... 14 更多 原因:KrbException: Generic error (description in e-text) (60) - ASN.1 unexpected field number 在 sun.security.krb5.KrbApRep.(KrbApRep.java:126) 在 sun.security.krb5.KrbApRep.(KrbApRep.java:102) 在 sun.security.krb5.KrbApRep.(KrbApRep.java:75) 在 sun.security.jgss.krb5.AcceptSecContextToken.(AcceptSecContextToken.java:89) 在 sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:696) ... 16 更多 原因:KrbException:标识符与预期值不匹配 (906) 在 sun.security.krb5.internal.APRep.init(APRep.java:92) 在 sun.security.krb5.internal.APRep.(APRep.java:75) 在 sun.security.krb5.KrbApRep.(KrbApRep.java:116) ... 20 更多我使用的是 java 7,但使用另一个没有问题。有没有办法使用 jvm 正确读取票证(请参阅 jdk 的 kinit 也不要创建正确的票证)
【问题讨论】: