0

特定の属性名のバインドされていない AttributeSyntax タイプを見つけようとしていますが、単に機能していません。

これを実現するために使用しているテスト コードの例を次に示します。

    @Test
    public void testLDAPSchema() {
    try {
        LDAPConnection connection = new LDAPConnection();
        connection.connect("hessmain", 389);
        connection.bind("CN=Administrator,CN=Users,DC=FISHBOWL,DC=NET", "password");

        Schema s = connection.getSchema();

        System.out.println(s.toString());

        AttributeTypeDefinition atd = s.getAttributeType("directReports");

        Set<AttributeTypeDefinition> oat = s.getOperationalAttributeTypes();
        Set<AttributeSyntaxDefinition> l = s.getAttributeSyntaxes();

        AttributeSyntaxDefinition asd1 = s.getAttributeSyntax(atd.getOID());
        AttributeSyntaxDefinition asd2 = s.getAttributeSyntax(atd.getSyntaxOID());
        AttributeSyntaxDefinition asd3 = s.getAttributeSyntax(atd.getBaseSyntaxOID());

        connection.close();
    } catch (Exception e) {
        Assert.fail(e.getMessage());
    }
    }

上記のコードから、すべてのセットが空です。これはまた、どの OID をスキーマの getAttributeSyntax メソッドに渡しても、単に null が返されることを意味します。

Active Directory サーバー スキーマから属性構文を取得できない理由はありますか?

ありがとう

4

1 に答える 1

3

これは UnboundID LDAP SDK for Java に固有のものではないと思います。Active Directory がこの情報を LDAP 経由で公開するかどうかはわかりません。一般的な LDAP 検索を実行してスキーマ情報を取得すると、attributeTypes 属性と objectClasses 属性が表示されますが、ldapSyntaxes は返されません (実際、ldapSyntaxes は属性タイプのリストに表示されません)。

同様に、どの属性タイプの定義にも、属性タイプが操作可能であることを示すために使用される USAGE 要素が含まれていません (「USAGE directoryOperation」など)。

おそらく、Active Directory はこの情報をまったく報告しないだけです。この情報を取得するための他の非標準的な方法 (たとえば、コントロールまたは拡張操作、または取得可能なその他のエントリ) を提供している可能性がありますが、それについてはわかりません。

于 2011-05-18T22:42:18.180 に答える