web-dev-qa-db-ja.com

Spring SecurityでBcryptでエンコードされたパスワードをデコードして、ユーザーアカウントを非アクティブ化する

Spring Hibernate MVCでWebアプリケーションプロジェクトに取り組んでいます。SpringセキュリティのBcryptアルゴリズムを使用して、エンコードされたパスワードをデータベースに保存しています。ここで、エンコードされたパスワードをデコードして、アカウントを非アクティブ化する必要があります。ユーザーがアカウントを非アクティブ化する前に、ユーザーのメールとパスワードを確認してください。デコードされたパスワードの取得に問題があります。誰かが私を助けたり、私の要件のための代替ソリューションを手伝ったりすることはできますか?

16
arch

この問題は、以下のコードを使用して解決されます。

_BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();  
encoder.matches(password, user.getPassword());  
_

password-フォームから(JSP)
user.getPassword()-データベースから

_BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
if(email.equalsIgnoreCase(user.getEmail()) && encoder.matches(password, user.getPassword())) {
    userService.deactivateUserByID(user.getId());
    redirectAttributes.addFlashAttribute("successmsg", "Your account has been deactivated successfully.");
    model.setViewName("redirect:/logout");
}else{
    redirectAttributes.addFlashAttribute("errormsg", "Email or Password is incorrect");
    model.setViewName("redirect:/app/profile/deactivate");
}
_
28
arch