[不具合] アドレス帳でLDAPサーバから、正No.48638
PineCone さん 15/10/08 19:25
 
ユーザのPineConeです。いつもお世話になっております。

LDAPサーバからデータを取得する際に、情報が正常に取り込まれない
事象が発生していますので、ご報告いたします。

[発生条件]
・ユーザ名の後ろに、半角を含んでいる場合。
  たとえば、「○○(123)」さんがヒットする場合
・もしかすると、[名前の属性名:]を「cn」から変更していますので、
  それも発生条件かもしれないです。

[事象]
・名前の部分が「"○○(123)」で、メールアドレスは「空」の状態
・なお、ヒットしたすべてが、その状態になっているわけではなくて、
  途中から、なぜか正常に表示される状態になっています。

[例]
  <名前>       <メールアドレス>
  「"○○(123)」 「空の状態」
  「"△△(456)」 「空の状態」
  「Test User」  「test@ベースアドレス」
  「"□□(789)"」「user789@ベースアドレス」

[二次的な事象?]
・一度、アドレス帳を閉じてから、再度開き直すと、今度は以下の
  ように、2行で表示されました...。

  <名前>       <メールアドレス>
  「"○○(123)」 「空の状態」
  「"」          「user123@ベースアドレス」
  「"△△(456)」 「空の状態」
  「"」          「user456@ベースアドレス」
  「Test User」  「test@ベースアドレス」
  「"□□(789)"」「user789@ベースアドレス」

[推測]
・名前が「"」で囲まれている場合に発生して、
  名前が「"」で囲まれていないユーザがいると、それ以降は正常に
  表示されているように見受けられます。

[環境]
・OS:Windows 7(32bitOS)
  秀丸メール:Version 6.46 Beta30

ご報告は、以上です。
お手数ですが、ご確認のほどよろしくお願いいたします。

[ ]
RE:48638 [不具合] アドレス帳でLDAPサーNo.48639
秀まるお2 さん 15/10/09 09:45
 
 まいどどうもです。

 とりあえずですが、こちらのテスト用LDAPサーバー(というか、メールサー
バー)で、

 ああ(123)
 いい(123)
 うう(123)

 のようなユーザー名のメンバーを作成してldap検索して3つともヒットするよ
うなテストをした限りでは、特に結果がおかしくなる様子は無いようでした。

 上記のような、名前の中に括弧を含む場合、秀丸メールの方で名前をダブルウ
ォーテーション記号で囲むようになります。もしかしたらそれが関係して問題が
起きてるのかもしれないです。だとしたら、「ユーザ名の後ろに、半角を含んで
いる場合」って条件じゃなくて、「ユーザー名の中に括弧を含む場合」ってのが
条件になるかなぁと思います。

 その辺どうでしょうか。

 それか、もしも「全角文字の後ろに半角文字がある場合」にってことであれば、
たとえばLDAPサーバーの返す文字列がUTF-8形式でエンコードされてて、それの
エンコードの仕方に何かクセがあって、それを秀丸メールがうまく解釈出来て無
くて、それで化けてしまってるのかもしれません。

 どっちにしても、再現が出来ないと原因も分からなくて解決が難しいです。

 解決策の1つとして、秀丸メールでのldap検索で流れるデータをdump.txtに出
力して(次のβ版で)、それでログを取っていただいて、そのログを僕に送って
いただく作戦ってのがあるんですが、それはダメでしょうか。

 取れたログを多少加工(伏せ字化)していただいてもいけそうな気がしますけ
ども。

 それか、ログを取っていただくのが難しい場合は、とりあえずLDAPサーバーか
ら取得された名前の中に不正な文字が無いか探して、それを除去するような処理
だけ入れれば直る可能性が高いかなぁという気がしますので、それだけやってみ
たい所ではあります。(ログ取りしていただけるにしても)

[ ]
RE:48639 [不具合] アドレス帳でLDAPサーNo.48640
秀まるお2 さん 15/10/09 09:58
 
 っと書いた所ではありますが、たぶん、LDAPサーバーから取得された名前の中
に改行コードが混じってるのが原因のような気がします。

 名前などに制御コードが混じってる場合はそれを除去するって処理を入れれば
直ると思うので、そういう処理を入れた上で、β版としてアップロードさせてい
ただきます。

 少々お待ちください。

[ ]
RE:48639 [不具合] アドレス帳でLDAPサーNo.48641
PineCone さん 15/10/09 10:45
 
秀まるお2様

ユーザのPineConeです。お世話になります。

> のようなユーザー名のメンバーを作成してldap検索して3つともヒットするよ
>うなテストをした限りでは、特に結果がおかしくなる様子は無いようでした。
>
検証まで行っていただき、ありがとうございます。

再度、こちらでも確認を行い、以下がわかりました。
(※発生条件が甘くて、お手数をおかけいたしました。)

・検索条件を絞りこんだところ、ヒットする件数や、発生する件数に
  関連性はない。

・ExtAdrBook.txt の出力結果も、画面上と同じ内容になっている。

・LDAPサーバ検索時の、[■検索結果の詳細表示]を見ると、
  特定のユーザ(attr="displayName")で、発生しているっぽい。

  詳しくは、以下のように返ってきています。
  ----------------------------------------
  attr="displayName"
      length=16 (maybe binary data)
  ----------------------------------------


> 上記のような、名前の中に括弧を含む場合、秀丸メールの方で名前をダブルウ
>ォーテーション記号で囲むようになります。もしかしたらそれが関係して問題が
>起きてるのかもしれないです。だとしたら、「ユーザ名の後ろに、半角を含んで
>いる場合」って条件じゃなくて、「ユーザー名の中に括弧を含む場合」ってのが
>条件になるかなぁと思います。
>
> その辺どうでしょうか。
>
 はい、確かに、「ユーザー名の中に括弧を含む場合」になっています。

 また、「ldap検索で流れるデータをdump.txt出力」も大丈夫です。
 (※適当に伏字に置き換えますので)


参考になるかどうかわかりませんが、[■検索結果の詳細表示]のログを
貼り付けておきます。(伏字に置き換え済み)
4名ヒットして、はじめの2名で事象発生時のものです。

****
Entry count=1
References count=0
ldap_get_dn length=41
    uid=xNNNNxx,ou=Users,dc=会社,dc=co,dc=jp
attr="sambaPrimaryGroupSID"
    length=44 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXX
attr="displayName"
    length=16 (maybe binary data)
attr="sambaLogonScript"
    length=11 xNNNNxx.cmd
attr="objectClass"
    length=3 top
    length=13 inetOrgPerson
    length=12 posixAccount
    length=15 sambaSamAccount
attr="sambaLogonTime"
    length=1 0
attr="sambaHomeDrive"
    length=2 H:
attr="uid"
    length=7 xNNNNxx
attr="uidNumber"
    length=4 1111
attr="cn"
    length=7 xNNNNxx
attr="sambaLogoffTime"
    length=10 1234567890
attr="sambaPwdLastSet"
    length=10 1234567890
attr="sambaAcctFlags"
    length=13 [U          ]
attr="loginShell"
    length=9 /bin/bash
attr="sambaProfilePath"
    length=21 \\pdc\xNNNNxx\profile
attr="gidNumber"
    length=3 555
attr="sambaPwdMustChange"
    length=10 1234567890
attr="sambaSID"
    length=45 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXXX
attr="gecos"
    length=11 System User
attr="sambaPwdCanChange"
    length=10 1234567890
attr="description"
    length=11 System User
attr="homeDirectory"
    length=13 /home/xNNNNxx
attr="sambaKickoffTime"
    length=10 1234567890
attr="sn"
    length=7 xNNNNxx
attr="sambaHomePath"
    length=11 \\PDC\homes
attr="sambaPasswordHistory"
    length=64 0000000000000000000000000000000000000000000000000000000000000000
attr="mail"
    length=20 user001@会社.co.jp

****
Entry count=1
References count=0
ldap_get_dn length=41
    uid=xNNNNxx,ou=Users,dc=会社,dc=co,dc=jp
attr="sambaPrimaryGroupSID"
    length=44 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXX
attr="displayName"
    length=16 (maybe binary data)
attr="sambaLogonScript"
    length=11 xNNNNxx.cmd
attr="objectClass"
    length=3 top
    length=13 inetOrgPerson
    length=12 posixAccount
    length=15 sambaSamAccount
attr="sambaLogonTime"
    length=1 0
attr="sambaHomeDrive"
    length=2 H:
attr="uid"
    length=7 xNNNNxx
attr="uidNumber"
    length=4 2222
attr="cn"
    length=7 xNNNNxx
attr="sambaLogoffTime"
    length=10 1234567890
attr="sambaPwdLastSet"
    length=10 1234567890
attr="sambaAcctFlags"
    length=13 [U          ]
attr="loginShell"
    length=9 /bin/bash
attr="sambaProfilePath"
    length=21 \\pdc\xNNNNxx\profile
attr="gidNumber"
    length=3 555
attr="sambaPwdMustChange"
    length=10 1234567890
attr="sambaSID"
    length=45 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXXX
attr="gecos"
    length=11 System User
attr="sambaPwdCanChange"
    length=10 1234567890
attr="description"
    length=11 System User
attr="homeDirectory"
    length=13 /home/xNNNNxx
attr="sambaKickoffTime"
    length=10 1234567890
attr="sn"
    length=7 xNNNNxx
attr="sambaHomePath"
    length=11 \\PDC\homes
attr="sambaPasswordHistory"
    length=64 0000000000000000000000000000000000000000000000000000000000000000
attr="mail"
    length=16 user002@会社.co.jp

****
Entry count=1
References count=0
ldap_get_dn length=41
    uid=xNNNNxx,ou=Users,dc=会社,dc=co,dc=jp
attr="sambaPrimaryGroupSID"
    length=44 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXX
attr="displayName"
    length=15 ユーザ 名1(1000)
attr="sambaLogonScript"
    length=11 xNNNNxx.cmd
attr="objectClass"
    length=3 top
    length=13 inetOrgPerson
    length=12 posixAccount
    length=15 sambaSamAccount
attr="sambaLogonTime"
    length=1 0
attr="sambaHomeDrive"
    length=2 H:
attr="uid"
    length=7 xNNNNxx
attr="uidNumber"
    length=4 3333
attr="cn"
    length=7 xNNNNxx
attr="sambaLogoffTime"
    length=10 1234567890
attr="sambaPwdLastSet"
    length=10 1234567890
attr="sambaAcctFlags"
    length=13 [U          ]
attr="loginShell"
    length=9 /bin/bash
attr="sambaProfilePath"
    length=21 \\PDC\xNNNNxx\profile
attr="gidNumber"
    length=3 555
attr="sambaPwdMustChange"
    length=10 1234567890
attr="sambaSID"
    length=45 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXXX
attr="gecos"
    length=11 System User
attr="sambaPwdCanChange"
    length=10 1234567890
attr="description"
    length=11 System User
attr="homeDirectory"
    length=13 /home/xNNNNxx
attr="sambaKickoffTime"
    length=1 0
attr="sn"
    length=7 xNNNNxx
attr="sambaHomePath"
    length=11 \\PDC\homes
attr="sambaPasswordHistory"
    length=64 0000000000000000000000000000000000000000000000000000000000000000
attr="sambaLogonHours"
    length=42 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
attr="mail"
    length=28 user003@サブ.会社.co.jp

****
Entry count=1
References count=0
ldap_get_dn length=41
    uid=xNNNNxx,ou=Users,dc=会社,dc=co,dc=jp
attr="sambaPrimaryGroupSID"
    length=44 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXX
attr="displayName"
    length=16 ユーザ 名2(2000)
attr="sambaLogonScript"
    length=11 xNNNNxx.cmd
attr="objectClass"
    length=3 top
    length=13 inetOrgPerson
    length=12 posixAccount
    length=15 sambaSamAccount
attr="sambaLogonTime"
    length=1 0
attr="sambaHomeDrive"
    length=2 H:
attr="uid"
    length=7 xNNNNxx
attr="uidNumber"
    length=4 4444
attr="cn"
    length=7 xNNNNxx
attr="sambaLogoffTime"
    length=10 1234567890
attr="sambaPwdLastSet"
    length=10 1234567890
attr="sambaAcctFlags"
    length=13 [U          ]
attr="loginShell"
    length=9 /bin/bash
attr="sambaProfilePath"
    length=21 \\PDC\xNNNNxx\profile
attr="gidNumber"
    length=3 555
attr="sambaPwdMustChange"
    length=10 1234567890
attr="sambaSID"
    length=45 S-X-X-XX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXXX-XXXX
attr="gecos"
    length=11 System User
attr="sambaPwdCanChange"
    length=1 0
attr="description"
    length=11 System User
attr="homeDirectory"
    length=13 /home/xNNNNxx
attr="sambaKickoffTime"
    length=1 0
attr="sn"
    length=7 xNNNNxx
attr="sambaHomePath"
    length=11 \\PDC\homes
attr="sambaPasswordHistory"
    length=64 0000000000000000000000000000000000000000000000000000000000000000
attr="mail"
    length=27 user004@サブ.会社.co.jp


以上
よろしくお願いいたします。

[ ]
RE:48641 [不具合] アドレス帳でLDAPサーNo.48642
PineCone さん 15/10/09 10:55
 
肝心の表示結果を忘れていました。

[例]
  <名前>                <メールアドレス>
  「"ユーザ 名前(001)」   「空の状態」
  「"ユーザ 名前(002)」   「空の状態」
  「"ユーザ 名1(1000)"」 「user003@サブ.会社.co.jp」
  「"ユーザ 名2(2000)"」「user004@サブ.会社.co.jp」

何かわかれば良いですが...
よろしくお願いいたします。


****
Entry count=1
 :
attr="displayName"
    length=16 (maybe binary data)
attr="mail"
    length=20 user001@会社.co.jp

****
Entry count=1
 :
attr="displayName"
    length=16 (maybe binary data)
attr="mail"
    length=16 user002@会社.co.jp

****
Entry count=1
 :
attr="displayName"
    length=15 ユーザ 名1(1000)
attr="mail"
    length=28 user003@サブ.会社.co.jp

****
Entry count=1
 :
attr="displayName"
    length=16 ユーザ 名2(2000)
attr="mail"
    length=27 user004@サブ.会社.co.jp



[ ]
RE:48642 [不具合] アドレス帳でLDAPサーNo.48643
秀まるお2 さん 15/10/09 11:33
 
 ldapサーバーからの応答に改行コードを無理矢理入れるシミュレーションをし
てみたら現象が再現しました。なので、これで直ったと思います。

32bit版:
http://hide.maruo.co.jp/software/bin3/hmmail647b2_signed.exe

64bit版:
http://hide.maruo.co.jp/software/bin3/hmmail647b2_x64_signed.exe

 「全般的な設定・上級者向け・デバッグ」の「デバッグレベル」を1以上にし
た場合はdump.txtにログも出すようにしたのですが、たぶんそれは不要だと思い
ます。しいてログを取ると、たとえば正常パターンなら、

10:29:41.760 (11440) tid=2672 DialogBox2Param() template=336
10:29:42.910 (11479) tid=2672 DialogBox2Param() exit 3744232
10:29:42.920 (10060) tid=2672 SetWaitCursor 0
10:29:51.004 (13060) tid=2672 "ああ(123)",hideo@maruo.co.jp,,,,
10:29:55.116 (13060) tid=2672 "ああ(123)",hideo2@maruo.co.jp,,,,
10:29:55.116 (13060) tid=2672 "ああ(123)",hideo3@maruo.co.jp,,,,

 みたいなログが出ます。もしダメな場合は、この辺を伏せ字にして教えてほし
いです。

 よろしくお願いします。

[ ]
RE:48643 [不具合] アドレス帳でLDAPサーNo.48644
PineCone さん 15/10/09 12:21
 
秀まるお2様

ユーザのPineConeです。お世話になっております。
非常に迅速なご対応をどうもありがとうございました。

> ldapサーバーからの応答に改行コードを無理矢理入れるシミュレーションをし
>てみたら現象が再現しました。なので、これで直ったと思います。
>
>32bit版:
>http://hide.maruo.co.jp/software/bin3/hmmail647b2_signed.exe
>
>64bit版:
>http://hide.maruo.co.jp/software/bin3/hmmail647b2_x64_signed.exe
>
「Version 6.47 Beta2」(32bit)にて、正常動作を確認いたしました。

なお、うちの会社のLDAPサーバのデータがヘン?にもかかわらず
修正を行っていただき、どうもありがとうございました。
非常に助かりました。

今後ともよろしくお願いいたします。

[ ]