2

ドキュメントSpring 3.1のセキュリティ ドキュメントをよく読んでいますが、すべての質問に対する回答が見つかりません。

春の Web アプリケーションでは、フォーム ログイン (ユーザー + pwd) に基づいて、ユーザーごとにランダムなソルトを使用して、SHA-256 でユーザー パスワードをソルトしたいと考えています。これは、ユーザーごとにソルトとハッシュ化されたパスワードをデータベースに保存する必要があることを意味します。今のところ問題ありません。

  1. UserDetailsServiceデータベースからユーザー情報を取得し、spring-security.xml.

  2. getSalt()の実装の上に追加のメソッドを追加しUserDetailsて、ユーザーが提供したログインを保存されたハッシュ化されたパスワードと照合するときに使用できるようにする必要があるようです。

その後、状況が不明確になります。ログイン要求をインターセプトする必要があります。セクション 6.4.3 から、Spring はユーザーが送信した資格情報をAuthenticationオブジェクトにマップし、AuthenticationManager.

私の質問は次のとおりです。

i) AuthenticationSpring は のどの実装を に提出しAuthenticationManagerますか? 名前とパスワードを取得するにはどうすればよいですか?

ii) 独自のものを実装する必要があるようAuthenticationManagerです。を呼び出すたびに、データベースからauthenticate(...)ログイン名とパスワードを取得UserDetailsします。次に、提供された pwd を対応するソルトでハッシュし、データベースのハッシュされたアイテムと比較します。正しい?

iii) AuthenticationManagerAPI にもsupports(...)メソッドがあります。どのように実装する必要がありますか?

iv) どのように構成する必要がAuthenticationありAuthenticationManagerますか?

4

1 に答える 1

2

私はあなたの質問を正しく読んでいないに違いありませんが、Spring Security はすぐにソルト化されたパスワードを提供します。

http://static.springsource.org/spring-security/site/docs/3.1.x/reference/core-services.html#d0e3021

8 ビットのソルトが不十分な場合は、独自の SaltSource を DaoAuthenticationProvider に挿入できます。マニュアルは実際にこれを強く推奨しています。

于 2012-07-18T15:49:50.150 に答える