2016-11-16 20 views
-1

私は がSunOne Directory Serverに接続するLDAPクライアントを作成するアプリケーションを作成しています。ユーザーは属性を入力して タイプを選択し、値を入力すると、私のアプリケーションは SunOneでそのユーザーを作成します。「homePhone」属性値が正しくありません

ユーザがIntegerとしてhomePhone、タイプを選択し、22334546ように値を入力すると、それは以下の例外を除いて

javax.naming.directory.InvalidAttributeValueException: Malformed 'homePhone' attribute value; remaining name 'cn=Identity3,ou=SunOU' 

を失敗同じのコードは

for(...) 
{ 
    String attrName = attrRequest.getName(); 
    Object attrVal = attrRequest.getValue(); 
    BasicAttribute attribute = getBasicAttribute(attrName, attrVal); 
    attrs.put(attribute); 
} 

ldapCtx.bind(objectDN,null,attrs); 

ある私は使用してこのユーザを作成することができていますApacheディレクトリStudio

enter image description here

答えて

0

一般に、電話番号は文字列であり、整数ではありません。 RFC 4517では、電話番号を標準形式(E.123 international)で保存することをお勧めしています。属性homePhoneの「電話番号」構文はLDAPスキーマで構成され、デフォルトで適用されますが、構成を変更することはできます。

独自のJavaプログラムとApache Directory Studioが同じLDAPサーバーインスタンスに接続する場合、シンタックスはクライアントによってではなくサーバーによって強制されるため、同じLDAPサーバーインスタンスに接続する必要があります。また、22334546は許容値なので、Apache Directory Studioは成功します。

エラーはあなたのコードにあるようですが、主に正しい値を保持していないattrValです。

関連する問題