2014-05-12 1 views
0

Je développe un programme Java et j'ai besoin de lire les données utilisateur de RACF en utilisant l'interface LDAP de la fonction RACF. J'Etablissez une connexion en utilisant le Java Naming Directory Interface, mais si j'envoie une demande de recherche parrecherche données utilisateur RACF avec JNDI

ctx = new InitialLdapContext(env, null); 
    SearchControls searchControls = new SearchControls(); 
    searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
    String searchFilter = "(&(objectClass=*)(racfid=test123))"; 
    NamingEnumeration results = ctx.search(SEARCH_BASE, searchFilter, searchControls); 

Le serveur reçoit la demande, mais il renvoie simplement le code d'erreur suivant:

javax.naming.NamingException: [LDAP: error code 80 - ICH31005I NO ENTRIES MEET SEARCH CRITERIA]; Remaining name: 'CN=RACFSYSA,O=IBM,C=US' 
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3061) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2963) 
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2770) 
    at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1824) 
    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1747) 
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:380) 
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:350) 
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:333) 
    at javax.naming.directory.InitialDirContext.search(Unknown Source) 

Si j'effectue cette recherche pour un "vrai" annuaire LDAP cela fonctionne bien. Le code d'erreur est le code par défaut et en raison de cela pas utile pour moi. Est-ce que quelqu'un a une idée de comment résoudre ce problème? Existe-t-il un autre moyen d'obtenir les données d'un utilisateur?

Répondre