unboundid ldapsdk GSSExceptio с сеансом kerberos

#kotlin #kerberos #unboundid-ldap-sdk

Вопрос:

Я пытаюсь использовать 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>