Hi Philip
Thank you for your response.
I have tried your suggested code, but got myself abit stuck with this line:
String base = "DC=sasol,DC=com";
String filter = "CN=SAPPortal-Sec-Prod-Admin,OU=SAPPortal
Groups,OU=Groups,OU=Core,DC=sasol,DC=com";
NamingEnumeration results = dctx.search(base, filter, ctls);
I can not continue with the while loop because results is null.
The search method takes a (name, string, searchControl)
I know that the base value is right, and my string value points to the group that has the attributes "member" which I want.
Please can you help further.
I have played around with it for some time and was very unsuccessful. The error I get :
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'DC=sasol,DC=com'
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.searchAux(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.c_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
at javax.naming.directory.InitialDirContext.search(Unknown Source)
at com.sasol.iview.LDAPLookup.main(LDAPLookup.java:34)
source code:
public static void main(String[] args) {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://ldapSasol.sasol.com:389");
env.put(Context.SECURITY_PRINCIPAL,("uid"));
env.put(Context.SECURITY_CREDENTIALS, "password");
String base = "DC=sasol,DC=com";
String filter = "CN=SAPPortal-Sec-Prod-Admin,OU=SAPPortal Groups,OU=Groups,OU=Core,DC=sasol,DC=com";
try {
DirContext dctx = new InitialDirContext(env);
//String[] attrIDs = {"member"};
String[] attrIDs = {"member"};
SearchControls ctls = new SearchControls();
ctls.setReturningAttributes(attrIDs);
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration results = dctx.search(base, filter, ctls);
//Attributes attrs1 = dctx.getAttributes("CN=SAPPortal-Sec-Prod-Admin,OU=SAPPortal Groups,OU=Groups,OU=Core,DC=sasol,DC=com");
//System.out.println("val:" + attrs1.get("cn").get());
dctx.close();
StringBuffer sb = new StringBuffer();
while (results.hasMore()) {
SearchResult res = (SearchResult) results.next();
Attributes attrs = res.getAttributes();
if (results.hasMore())
sb.append(attrs.get("member").toString().substring(4) + ",");
else
sb.append(attrs.get("member").toString().substring(4));
}
System.out.println(sb.toString());
} catch (NamingException e) {
e.printStackTrace();
}
} //end main