管理者がパスワードを設定したら、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});