kullanarak ldap dizininin tüm objectclasses açıklamasını gösterme Yeni giriş eklemek için kullanıcının kullanılabilir nesne sınıflarını girmesine yardımcı olmak için LDAP Dizini şemasında bulunan tüm nesne sınıflarını göstermek istiyorum. Ancak bu yalnızca kişi hakkında bilgi gösterir.jndi
Q
jndi
5
A
cevap
3
Sen subschema alt girişi sorgulamak zorunda yani cn = şema (Aşağıdaki kod Apache Directory Server karşı test edilmiştir)
DirContext ctx = new InitialLdapContext(env, null);
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.OBJECT_SCOPE);
searchControls.setReturningAttributes(new String[]
{ "objectClasses" });
NamingEnumeration<SearchResult> results = ctx.search("cn=schema", "(ObjectClass=*)", searchControls);
SearchResult result = results.next();
Attributes entry = result.getAttributes();
Attribute objectClasses = entry.get("objectClasses");
System.out.println(objectClasses);
4
DirContext schema=dcx.getSchema("");
NamingEnumeration bindings = schema.listBindings("ClassDefinition");
while (bindings.hasMore())
{
Binding bd = (Binding)bindings.next();
System.out.println(bd.getName() + ": " + bd.getObject());
}
Sen
- AttributeDefinition gibi çeşitli diğer bağlantıları da kullanabilirsiniz
- ClassDefinition
- SyntaxDefinition
Şema bağlamı da
- MatchingRule
- ExtensionDefinition, bu özel uygulama
- SASLDefinition Sen cn = şema hardcode dikkatli olmak zorunda
+0
Java 1.5 ve üstü sürümlerde döküm gerekmez. –
+0
@RobinGreen, 'NamingEnumeration
olduğunu
çok teşekkür ederim. Bu kod sadece iyi çalıştı. – pankaj
nope, cn = schema şema konumunu belirten LDAP V3 standart değeridir – kayyagari