0

我正在开发一个 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)

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

4

1 回答 1

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" 是正确的

于 2014-05-12T12:07:11.753 回答