我有springboot其他代码注册一些用户。我使用bycrpt编码器对它进行编码。的代码是这样的下面春季开机密码Bcrypt
@RequestMapping(value="/customer/new", method=RequestMethod.POST)
public Customer newCustomer (@RequestBody Customer customer){
customer.setPassword(new BCryptPasswordEncoder().encode(customer.getPassword()));
return customerservice.saveCustomer(customer);
}
所以全成与编码密码 财产以后存储密码这样 $ 2A $ 10 $ f25IxR/b7wNJBl7Zi.zEMOzpR2nDEw7IJwR3tv/BVKsKJRAtDe1Mq
所以我使登录其余控制器这样的下面
@RequestMapping(value = "customer/login", method = RequestMethod.POST)
public String login(@RequestBody Customer login) throws ServletException {
String jwtToken = "";
if (login.getUsername()== null || login.getPassword()== null) {
throw new ServletException("Please fill in username and password");
}
String username = login.getUsername();
String password = new BCryptPasswordEncoder().encode(login.getPassword());
Customer customer = customerservice.findByusername(username);
if (customer == null) {
throw new ServletException("Username not found.");
}
String pwd = customer.getPassword();
if (!password.equals(pwd)) {
throw new ServletException("Invalid login. Please check your name and password.");
}
登录其他控制器得到输入用户名,并从用户输入的密码。并且我尝试对密码进行编码,以便它可以作为Bcrypt编码密码返回并匹配之前存储的密码。
但它不匹配。我可以得到相同的密码编码。如何解决这个问题? 即时新使用springboot休息
你的代码没问题。调试代码来查找问题。打印或调试编码和存储的密码前匹配 – Zico