2016-05-02 46 views
0

パスワードを変更する機能を持つアプリケーションがあります。BCryptPasswordEncoderを使用して現在のパスワードをパスワード変更します。春のセキュリティ

は私がパスワードをエンコードし、データベースに追加するBCryptPasswordEncoderを使用し、春のセキュリティは、このコードでこれを扱うことができます。

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder authentication) throws Exception { 
    authentication 
        .jdbcAuthentication() 
         .dataSource(dataSource) 
         .passwordEncoder(new BCryptPasswordEncoder()); 
} 

を、私は、ユーザーが現在を入力する必要がありますコントローラにそれを実装しようとしていますパスワード。 BCryptPasswordEncoderが呼び出され、パスワードが暗号化されますが、DBに格納されているパスワードと一致しません。

これを解決する方法はありますか?

+1

あなたがそれらの暗号文を比較しましたか?あなたが 'String#equals'でそれらを比較しているなら、この答えを見てください。http://stackoverflow.com/questions/36324113/spring-security-bcryptpasswordencoder/36328015#36328015 –

+0

@AliDehghaniありがとう、それは少し修正しましたしかし働いた。私は答えを投稿します! –

+0

それはうまくいったのですが...この質問を重複して閉じると良いでしょう。 –

答えて

0

コメント欄の助けを借りて私は答えを得ました。

matches()機能を使用して、rawPasswordencodedPasswordと比較しています。私が何をしたか

されました:

final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); 

    if(passwordEncoder.matches(rawPassword, encodedPassword)){ 
     return true; 
    else{ 
     return false; 
     } 
関連する問題