0
LDAP AD의 그룹에서 구성원을 얻으려고하면 몇 가지 문제가 있습니다.LDAP AD paging with
1) 나는 1000의 페이지 크기를 필요로하지만, 1500 명 멤버를 반환 (myside에서 어떤 문제가 있습니까 또는) ?? 관리자를 요청해야
2) 쿠키 값은 항상 null로, 나는 확실하지 않다 없어진 물건 있어요. 쿠키가 null로 resultpagesize는이 문제가 건너 온이
Hashtable<String, Object> env = new Hashtable<String, Object>();
LdapContext ctx;
byte[] cookie = null;
try {
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost");
env.put(Context.SECURITY_PRINCIPAL,"cn=testaccount");
env.put(Context.SECURITY_CREDENTIALS, "passwd");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
ctx = new InitialLdapContext(env, null);
SearchControls searchCtls = new SearchControls();
String returnedAtts[]={"member"};
searchCtls.setSearchScope(2);
searchCtls.setReturningAttributes(returnedAtts);
ctx.setRequestControls(new Control[] { new PagedResultsControl(1000, false) });
do {
NamingEnumeration answer = ctx.search("", "(&(objectClass=group)(cn=testgroup))", searchCtls);
while (answer.hasMore()) {
SearchResult entry = (SearchResult) answer.next();
String attrsValaues = entry.getAttributes().toString();
System.out.println(attrsValaues);
}
Control[] controls = ctx.getResponseControls();
if (controls != null) {
for (int i = 0; i < controls.length; i++) {
System.out.println(controls[i]);
if (controls[i] instanceof PagedResultsResponseControl) {
PagedResultsResponseControl prrc = (PagedResultsResponseControl) controls[i];
cookie = prrc.getCookie();
}
}
}
ctx.setRequestControls(new Control[] { new PagedResultsControl(1000, cookie, false) });
} while(cookie!=null);
} catch (Exception e) {
e.printStackTrace();
}
를 사용하지 않고 사용자를 가져올 수있는 방법을 찾아 해결하는 경우
이 제발 도와주세요 null의 경우 Spring LDAP 1.3.2 이상에 포함되어 있습니다. 자세한 내용은 http://docs.spring.io/spring-ldap/docs/1.3.2.RELEASE/apidocs/org/springframework/ldap/core/support/DefaultIncrementalAttributesMapper.html – marthursson
페이징은 검색 결과를 참조하십시오. 범위를 사용하여 큰 속성 목록을 가져 오는 것은 페이징이 아닙니다. 질질 마냥하지 말고, 답을 찾아야한다는 것을 알고 있습니다. – ixe013
yaa 나는 ixe013에 동의합니다 ... 나는 spring-ldap-1.3.1을 사용하고 있으며 업그레이드 할 수 없습니다. 그래서 아래에 나온 결과를 얻기 위해 다른 방법을 사용합니다. – MohanSee