我正在开发一个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目录它工作正常。 错误代码是默认代码,因为这对我没有帮助。 有谁知道如何解决这个问题?有没有其他方法来获取用户的数据?
答案 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”将是正确的