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