Jasypt 1.9.0、Spring 3.1.1.RELEASE、および Maven 3.0.3 を使用しています。Jasypt コマンド ライン ツールを使用して、次のようにパスワードを生成します …</p>
./digest.sh input=admin providerClassName=org.bouncycastle.jce.provider.BouncyCastleProvider algorithm=SHA-256 saltGeneratorClassName=org.jasypt.salt.ZeroSaltGenerator
ただし、ログイン画面で誰かが入力したパスワードとの照合を試みるように Spring セキュリティを構成すると…</p>
<beans:bean id="bcProvider" class="org.bouncycastle.jce.provider.BouncyCastleProvider" />
<beans:bean id="jasyptStringDigester" class="org.jasypt.digest.StandardStringDigester">
<beans:property name="algorithm">
<beans:value>SHA-256</beans:value>
</beans:property>
<beans:property name="provider">
<beans:ref bean="bcProvider" />
</beans:property>
<beans:property name="saltGenerator">
<beans:bean id="saltGenerator" class="org.jasypt.salt.ZeroSaltGenerator"/>
</beans:property>
</beans:bean>
<!-- This Spring Security-friendly PasswordEncoder implementation will -->
<!-- wrap the StringDigester instance so that it can be used from -->
<!-- the security framework. -->
<beans:bean id="passwordEncoder" class="org.jasypt.spring.security3.PasswordEncoder">
<property name="stringDigester">
<ref bean="jasyptStringDigester" />
</property>
</beans:bean>
<authentication-manager alias="authenticationManager" id="authenticationManager">
<authentication-provider user-service-ref="sbdUserDetailsService">
<password-encoder ref="passwordEncoder" />
</authentication-provider>
</authentication-manager>
Spring は保存されているものとは異なるパスワードを生成しているため、ユーザーを認証できません。不足している構成はありますか?認証中に、SPring が Jasypt とは異なるものを生成するのはなぜですか?