Webサービスを読み取り、ユーザーデータを取得し、そのデータをActiveDirectoryにプッシュして、ユーザーの役職、住所、電話番号などを更新するプログラムを作成しました.
問題は、Unboundid Connection クラスを使用して検索を実行すると、要求された属性が返されないことです。以下は検索コードです。
SearchResult result = connection.search( properties.getProperty("ldap.search.baseDN"),
SearchScope.SUB, "(cn=" + userId + ")",
"personalTitle", "department", "company", "manager", "telephoneNumber",
"streetAddress", "I", "st", "postalCode", "c", "pager", "mobile",
"fax", "cn");
上記のコードは目的のユーザーを特定し、cn 属性は期待どおりに返されますが、他の属性はすべて返されません。同じ接続資格情報を使用して JXplorer を使用して AD に接続すると、必要なすべての属性が存在することを確認できますが、単に返されません。
フィールドを明示的にリストするのではなく、SearchRequest.ALL_OPERATIONAL_ATTRIBUTES、SearchRequest.ALL_USER_ATTRIBUTES、および SearchRequest.REQUEST_ATTRS_DEFAULT を代入しようとしましたが、成功しませんでした。
また、「connection.getSchema()」から返された「Schema」オブジェクトを調べたところ、personalTitle が存在する必要があることがわかります。
connection.getSchema().getAttributeType("personalTitle")
上記のコードは次を返します。
1.2.840.113556.1.2.615 NAME 'personalTitle' SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE
多分これはユーザー権限の問題ですか?誰もこれを経験し、それを解決する方法を知っていますか?
ありがとう、マイク