0

管理者がパスワードを設定したら、Spring LDAP を使用してユーザーのパスワードを変更するためのコードを開発する必要があります。ディレクトリ サーバーとして OpenDS 2.2 を使用しています。

コードを使用して変更するたびに、属性「pwdReset」が true に設定されます。これは、パスワードを変更する必要があることを意味します。ただし、パスワードを再度変更しても、この属性は false にリセットされません。Javaコードで「pwdReset」をfalseに明示的にリセットするという回避策を得ることができましたが、これは正しい方法ではありませんし、そうすべきではありません。

私が理解したことから、これは操作属性であり、ユーザーが変更するべきではありません。最初にユーザーを認証し、ユーザーがまだ認証されている間にパスワードを変更する方法があります。

ここで助けが必要です。前のパラグラフで述べたことを達成するためのサンプルコードを誰かに提供していただければ幸いです。

私が現在使用しているコードは以下のとおりです

     ModificationItem item = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new        BasicAttribute("userPassword", password));
             ldapTemplate.modifyAttributes("cn="+userName, new ModificationItem[]{item});
4

1 に答える 1

0

OpenDS (および OpenDJ は OpenDS の積極的に開発されたフォークです。opendj.forgerock.org を確認してください) のパスワード リセットは、別のユーザー (通常は cn=Directory Manager として) として認証されたときにユーザー アカウントのパスワードを変更する操作です。認証されたユーザーが自分のパスワードを変更している場合、それはリセットではなく、変更です (これは、ProxiedAuthorization コントロールを使用する場合にも当てはまります)。

いずれの場合でも、パスワードのリセット時にパスワードの変更を強制するようにパスワード ポリシーが定義されている場合は、pwdReset 属性が設定されます。パスワードが常に管理者アカウントによって変更されることがわかっている場合は、リセット時にパスワードの変更を強制しないでください。

よろしく、ルドビッチ。

于 2012-05-31T19:12:41.843 に答える