簡體   English   中英

如何使用jndi顯示ldap目錄的所有對象類描述

[英]How to show all objectclasses description of ldap directory using jndi

我想顯示LDAP目錄模式中存在的所有對象類,以幫助用戶輸入可用的對象類以添加新條目。

DirContext schema = ctx.getSchema("");
Attributes answer = schema.getAttributes("ClassDefinition/person");

但這只顯示有關人的信息。

DirContext schema=dcx.getSchema("");
NamingEnumeration bindings = schema.listBindings("ClassDefinition");
while (bindings.hasMore())
{
    Binding bd = (Binding)bindings.next();
    System.out.println(bd.getName() + ": " + bd.getObject());
}

您可以使用各種其他綁定

  • AttributeDefinition
  • 類定義
  • SyntaxDefinition

模式上下文也可以提供類似的綁定
  • 匹配規則
  • ExtensionDefinition
  • ControlDefinition
  • SASLDefinition

您必須查詢子模式子條目,即cn = schema(以下代碼已針對Apache Directory Server進行了測試)

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 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM