问题描述
我正在尝试使用 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 (将#修改为@)