ドキュメントSpring 3.1のセキュリティ ドキュメントをよく読んでいますが、すべての質問に対する回答が見つかりません。
春の Web アプリケーションでは、フォーム ログイン (ユーザー + pwd) に基づいて、ユーザーごとにランダムなソルトを使用して、SHA-256 でユーザー パスワードをソルトしたいと考えています。これは、ユーザーごとにソルトとハッシュ化されたパスワードをデータベースに保存する必要があることを意味します。今のところ問題ありません。
UserDetailsServiceデータベースからユーザー情報を取得し、spring-security.xml.getSalt()の実装の上に追加のメソッドを追加しUserDetailsて、ユーザーが提供したログインを保存されたハッシュ化されたパスワードと照合するときに使用できるようにする必要があるようです。
その後、状況が不明確になります。ログイン要求をインターセプトする必要があります。セクション 6.4.3 から、Spring はユーザーが送信した資格情報をAuthenticationオブジェクトにマップし、AuthenticationManager.
私の質問は次のとおりです。
i) AuthenticationSpring は のどの実装を に提出しAuthenticationManagerますか? 名前とパスワードを取得するにはどうすればよいですか?
ii) 独自のものを実装する必要があるようAuthenticationManagerです。を呼び出すたびに、データベースからauthenticate(...)ログイン名とパスワードを取得UserDetailsします。次に、提供された pwd を対応するソルトでハッシュし、データベースのハッシュされたアイテムと比較します。正しい?
iii) AuthenticationManagerAPI にもsupports(...)メソッドがあります。どのように実装する必要がありますか?
iv) どのように構成する必要がAuthenticationありAuthenticationManagerますか?