使用JNDI查找RACF用户数据

时间:2014-05-12 09:36:36

标签: java ldap jndi racf

我正在开发一个java程序,需要使用RACF的LDAP接口从RACF读取用户数据。我使用Java命名目录接口建立连接,但是如果我通过

发送搜索请求
    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);

服务器收到请求但它只返回以下错误代码:

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)

如果我执行此搜索" real" LDAP目录它工作正常。 错误代码是默认代码,因为这对我没有帮助。 有谁知道如何解决这个问题?有没有其他方法来获取用户的数据?

1 个答案:

答案 0 :(得分:1)

LDAP SDBM不支持您的搜索过滤器 cf http://pic.dhe.ibm.com/infocenter/zos/v1r12/index.jsp?topic=%2Fcom.ibm.zos.r12.glpa200%2Fglpa2ab077.htm

String searchFilter =“(racfid = test123”将是正确的