このフォーラムとドキュメントを確認しましたが、この質問に対する回答が見つかりませんでした。つまり、基本的な Java オブジェクトを MD5 エンコーディングのソルトとして使用して基本的な Spring Security 構成をセットアップするにはどうすればよいですか?
これが私のSpring Securityコンテキストスニペット構成です:
<beans:bean id="saltSource" class="com.myproject.sec.util.MyString" scope="singleton" >
<beans:constructor-arg value="12345" />
</beans:bean>
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userService">
<password-encoder hash="md5">
<salt-source ref="saltSource" />
</password-encoder>
</authentication-provider>
</authentication-manager>
...しかし、この構成は、Salt ソースが org.springframework.security.authentication.dao.SaltSource インターフェイスのものではないことを訴える不要なエラー Exception をスローしますが、ユーザーの詳細のプロパティを自分のソルトとして使用したくありません (このように)インターフェイスはユーザーの詳細をサポートしています) ではなく、上記のように私のカスタム文字列オブジェクトです。どうすればこれを達成できますか?
また、密接に関連する2番目の質問として、次のようにSaltをユーザー名として取得できることを知っています。
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userService">
<password-encoder hash="md5">
<salt-source user-property="username"/>
</password-encoder>
</authentication-provider>
</authentication-manager>
そして、次のように「12345」のシステム全体の固定Saltを持っています:
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userService">
<password-encoder hash="md5">
<salt-source system-wide="12345"/>
</password-encoder>
</authentication-provider>
</authentication-manager>
...しかし、ユーザー名とシステム全体の定数「12345」の両方の連結としてソルトを取得するにはどうすればよいですか。エンコーディング?