unboundid ldapsdk GSSExceptio 与 kerberos 会话

问题描述

我正在尝试使用 unboundid.ldapsdk搜索 ldap 目录。但是,由于某种原因,我无法执行绑定。 这是执行会话创建的相关代码

val sslUtil = SSLUtil()

val factory: SocketFactory = sslUtil.createSSLSocketFactory()
val conn = LDAPConnection(factory,"<endpoint>",636)

val gssapiProperties = GSSAPIBindRequestProperties(null as String?,null as String?)
gssapiProperties.setRealm("<realm>")
gssapiProperties.setKDCAddress("<realm>")
gssapiProperties.setEnableGSSAPIDebugging(true)

val bindRequest = GSSAPIBindRequest(gssapiProperties)
var bindResult: BindResult?

bindResult = conn.bind(bindRequest)

导致错误

Caused by: GSSException: Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)
        at sun.security.jgss.krb5.Krb5NameElement.getInstance(Krb5NameElement.java:129)
        at sun.security.jgss.krb5.Krb5MechFactory.getNameElement(Krb5MechFactory.java:99)
        at sun.security.jgss.GSSManagerImpl.getNameElement(GSSManagerImpl.java:197)
        at sun.security.jgss.GSSNameImpl.getElement(GSSNameImpl.java:478)
        at sun.security.jgss.GSSNameImpl.init(GSSNameImpl.java:201)
        at sun.security.jgss.GSSNameImpl.<init>(GSSNameImpl.java:170)
        at sun.security.jgss.GSSManagerImpl.createName(GSSManagerImpl.java:132)
        at com.sun.security.sasl.gsskerb.GssKrb5Client.<init>(GssKrb5Client.java:107)

kerberos 配置位于 /etc/krb5.conf。我已经明确定义了领域和 KDC 地址,因为我认为它可能会解决问题,但无论是否明确设置它们都会出现相同的错误

我在 Linux 系统上运行,库是在 maven 中定义的

<dependency>
   <groupId>com.unboundid</groupId>
   <artifactId>unboundid-ldapsdk</artifactId>
   <version>6.0.0</version>
   <scope>compile</scope>
</dependency>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)