Поиск LDAP Необработанные ссылки на продолжение

Я использую Grails 2, Groovy 1.8.5, плагин Grails Ldap для выполнения поиска через LDAP в Active Directory и получаю javax.naming.PartialResultException: Unprocessed Continuation Reference(s); оставшееся имя '/'. Для авторизации я использую Spring LDAP, который отлично работает без проблем. Я осмотрелся, и большинство потоков говорят об автоматическом переходе по рефералам, для которых я использую этот флаг для derefLinkFlag = true. Я даже пытался передать этот аргумент в JVM -Djava.naming.referral=follow

Кто-нибудь сталкивался с этим? Любые предложения приветствуются. Как вы думаете, связано ли это с тем, как настроена AD, и если да, то что мне искать, я новичок в AD.

Я могу избежать этого исключения, потому что мой Active Directory является глобальным каталогом, поэтому я просто подключаюсь к порту 3268, и все работает нормально. Однако есть одно предостережение: не все атрибуты добавляются в глобальный каталог, например, PhysicalDeliveryOfficeName. Это также то, что можно решить, реплицируя/включив атрибут в схему GC, но я не хочу этого делать по ряду причин.

Далее следует код: Конфигурация

ldap {
  directories {
   rootdir {
    url = "ldap://my.company.com:389"
    base = "DC=my,DC=company,DC=com"
    userDn = "cn=User Name,cn=Users,dc=my,dc=company,dc=com"
    password = "secret"
    searchControls {
    countLimit = 400
    timeLimit = 6000
    searchScope = "subtree"
    derefLinkFlag = true
    }
  }
}

schemas = [
   com.mycompany.ldap.User,
   com.mycompany.ldap.Group
]
}

Домен

@GldapoSchemaFilter("(objectclass=person)")
class User {
@GldapoNamingAttribute
String cn

String dn
String mail
String sn
String physicalDeliveryOfficeName
}

Контроллер

 class UserController {

   def index() {
        redirect(action: "list")
   }

   def list(){
    List users = User.findAll()
    [userInstanceList: users, userInstanceTotal: users.size()]
   }
 }

Исключение:

Unprocessed Continuation Reference(s). Stacktrace follows:
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining      name '/'
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2846)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820)
at com.sun.jndi.ldap.LdapNamingEnumeration.getNextBatch(LdapNamingEnumeration.java:129)
at com.sun.jndi.ldap.LdapNamingEnumeration.hasMoreImpl(LdapNamingEnumeration.java:198)
at com.sun.jndi.ldap.LdapNamingEnumeration.hasMore(LdapNamingEnumeration.java:171)
at gldapo.GldapoDirectory.nonPagedSearch(GldapoDirectory.groovy:162)
at gldapo.GldapoDirectory.search(GldapoDirectory.groovy:144)
at gldapo.schema.GldapoSchemaClassInjecto$__clinit__closure35.doCall(GldapoSchemaClassInjecto.groovy:374)
at gldapo.schema.GldapoSchemaClassInjecto$__clinit__closure38.doCall(GldapoSchemaClassInjecto.groovy:390)
at uk.co.mycomp.myapp.ldap.UserController.list(UserController.groovy:15)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Большое спасибо, Г


person gdev    schedule 21.02.2012    source источник


Ответы (2)


Решение состоит в том, чтобы включить следующую строку в настройки ldap в Config.groovy

ignorePartialResultExcepton = true
person gdev    schedule 25.04.2012
comment
ignorePartialResultException отсутствует i. Смущающе это поймало меня. - person lechuck; 24.02.2014

Исключение именования javax.naming.PartialResultException: Необработанные ссылки продолжения; оставшееся имя: эта ошибка возникает там, где вы работаете с searchbaseDN с верхнего уровня. Используйте ou (организационная единица) в базе поиска dn.

person V.Barod    schedule 09.06.2017