[Seasar-user:14640] [S2Directory]passwordObjectの取得方法

小林正和 [E-MAIL ADDRESS DELETED]
2008年 6月 11日 (水) 12:44:04 JST


お世話になります。小林といいます。

S2Directoryを使用して特定ユーザーのパスワード有効期限を取得したいのですが、
その方法がわかりません。

s2-directory-generator.0.2.jar を使用して作成したエンティティをプロジェクトに
登録し、PersonDirectoryDao を作成することにより、特定uidの Person オブジェクトを
取得することはできました。
Person person = personDao.getByUid("masapon1967"); //person != null でした。

PasswordObject には、オブジェクトを特定するプロパティとして dn があるので
PasswordObjectDirectoryDao インターフェイスに

@Arguments("dn")
PasswordObject getByDn(String dn);

というメソッドを追加したのですが、

DN が uid=masapon1967,ou=People,o=foo,o=isp のPasswordObject を取得するために、
PasswordObject passwordObject =
passwordObjectDao.getByDn("uid=masapon1967,ou=People,o=foo,o=isp");

としたところ、 passwordObject に null が返ってきます。

ちなみにこの場合、ログに Filter:
&((objectClass=passwordObject)(dn=uid=masapon1967,ou=People,o=foo,o=isp))
と表示されます。

Apache LDAP Studio で、フィルタを (&(objectClass=person)(uid=masapon1967))
とし、Returning Attributes を
passwordExpirationTime (passwordObject の属性)にしたところ、passwordExpirationTime に想定した
パスワード有効期限が設定されていることは確認できました。

DN に指定した値に一致する PasswordObject を取得するためには、
どのように指定したらよろしいのでしょうか。

よろしくお願いします。

環境
S2 2.4.25
S2Directory 0.6.1
Tomcat 6.0.16

-- 
----------------------------------------------
Masakazu Kobayashi


Seasar-user メーリングリストの案内