2014-11-13 9 views
9

को निष्क्रिय करने के लिए मैं वसंत हाइबरनेट MVC.I में वेब अनुप्रयोग परियोजना पर काम कर रहा हूँ स्प्रिंग सुरक्षा में Bcrypt कलन विधि का उपयोग डेटाबेस में एन्कोडेड पासवर्ड भंडारण कर रहा हूँ। अब मैं पाने के लिए है कि एन्कोडेड पासवर्ड का प्रयोग करें खाता है, जहां में मैं उपयोगकर्ता ईमेल और पासवर्ड दे रहा हूँ उपयोगकर्ता खाते को निष्क्रिय करने से पहले सत्यापित करने के लिए निष्क्रिय करने के लिए डीकोड किया जा करना चाहते हैं। मुझे डीकोडेड पासवर्ड प्राप्त करने में समस्या है। क्या कोई मेरी आवश्यकता के लिए इसे बाहर निकलने में मदद कर सकता है या कोई वैकल्पिक समाधान कर सकता है?वसंत सुरक्षा में डिकोड Bcrypt इनकोडिंग पासवर्ड उपयोगकर्ता खाते

उत्तर

18

समस्या कोड के नीचे का उपयोग करके हल किया जाता है:

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"); 
} 
+2

बस स्पष्ट होना - यह वास्तव में डिकोड नहीं करता है प्रश्न द्वारा निहित एन्कोडेड पासवर्ड। प्रति स्प्रिंग डॉक्स, 'BCryptPasswordEncoder.matches()' सत्यापित करता है के बाद यह भी इनकोडिंग इनकोडिंग भंडारण से प्राप्त पासवर्ड भेज कच्चे पासवर्ड मेल खाता है। – Shaggy

संबंधित मुद्दे