Я пытался найти способ обнаружить все атрибуты, поддерживаемые классом объектов в контексте каталога. Я попытался использовать метод getattributes()
контекста каталога, но он отображает только те атрибуты, которые заполнены. Меня интересует обнаружение всех атрибутов, поддерживаемых только определенным классом объектов, а не всеми атрибутами для всех классов объектов. Ниже приведены фрагменты кода, которые я уже пробовал.
//Подход 1
System.out.println("using bindings.......");
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope( SearchControls.OBJECT_SCOPE );
searchControls.setReturningAttributes( new String[]
{ "objectClasses" } );
NamingEnumeration<SearchResult> results = conn.getInitialContext().search( "cn=schema", "(ObjectClass=*)", searchControls );
SearchResult result = results.next();
Attributes entry = result.getAttributes();
javax.naming.directory.Attribute objectClasses = entry.get( "objectClasses" );
System.out.println( objectClasses );
System.out.println("................................");
//Подход 2
DirContext tedClasses = (conn.getInitialContext().getSchemaClassDefinition(entryName));
// Enumerate the class definitions
NamingEnumeration namingEnum = tedClasses.search("", null);
System.out.println("attrs are:");
while (namingEnum.hasMore()) {
System.out.println(namingEnum.next());
}
Где conn.getInitialContext()
дает контекст каталога