JNDI avec Active Directory PartialResultException
Je suis fondamentalement à pied de l'arbre LDAP, Active Directory.
À chaque niveau, j'ai une requête pour "(objectClass=*)"
. Quand je fais cela à la racine par exemple "dc=example,dc=com"
- je obtenir de l'exception ci-dessous. Cela fonctionne très bien sur nos autres LDAP instances. Pour une raison seulement sur notre serveur Active Directory-je obtenir cette exception. J'ai également le même exception lors de l'utilisation de JXplorer sur notre serveur Active Directory.
De lecture autour de ligne, j'ai trouvé des gens qui disent que vous devez tourner la suite, vous ne savez pas ce que cela signifie... Donc sur mon contrôles de l'objet (javax.naming.directory.SearchControls
) que je passe avec la requête que j'appel searchControls.setDerefLinkFlag(true)
. J'ai aussi essayé un réglage à false
avec le même résultat. Toute une des suggestions sur ce que pourrait en être la cause? Peut-être comment je pourrais résoudre ce problème?
Remarque: Dans ce post, j'ai changé le nom unique de base de dc=<my company domain>
à l'exemple de mon sociétés de la vie privée.
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'dc=example,dc=com'
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2794)
at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1826)
at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1749)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321)
at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
at com.motio.pi.gui.panels.useraccess.ldap.LDAPConnector.query(LDAPConnector.java:262)
at com.motio.pi.gui.selector.directory.CognosDirectoryBrowserController.expandCognosTreeNode(CognosDirectoryBrowserController.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.motio.pi.utils.PIThreadDelegate$1.run(PIThreadDelegate.java:54)
at java.lang.Thread.run(Thread.java:662)
OriginalL'auteur startoftext | 2011-03-31
Vous devez vous connecter pour publier un commentaire.
Alors, quand j'ai créer mon contexte de nommage de la méthode:
Dans l'argument
environment
il y a une propriété avec le nomContext.REFERRAL
et sa valeur doit être définie:follow
. Telle était la scène que j'avais besoin.Bose je ne travaille pas avec ldap davantage, donc désolé je ne peux pas aider.
(pour les autres), Si la solution ci-dessus ne fonctionne pas, vous pouvez essayer les 2 choses: (1) Être plus précis, quand vous mentionnez le nom (E. g.:
OU=Accounts,DC=x,DC=y
au lieu deDC=x,DC=y
. (2) Modifier le numéro de port LDAP 3268 (au lieu de 389)OriginalL'auteur startoftext
Si vous obtenez une exception lors de la saisine de l'utilisation dans le suivi (par exemple: connection timed out) vous pouvez utiliser le renvoi de l'ignorer, mais vous ne voulez pas d'obtenir exception partielle vous pouvez utiliser 3268 numéro de port au lieu de 389 ce port est à l'aide de catalogue global pour le ldap. Vous pouvez trouver des informations à partir du lien suivant;
https://technet.microsoft.com/en-us/library/how-global-catalog-servers-work(v=ws.10).aspx
OriginalL'auteur mertaksu