百度很多文章都什么用,不能直接解决我的问题
直接修改security的加密方式,废话少说看报错!
报错的意思是:
密码加密方式采用了bcrypt的方式,而且密码直接配置在xml文件中,不光是需要使用BCryptPasswordEncoder来加密,还需要指定一个encodingId,如果不指定,就会报出如题所示的错误。
解决方式:
把以下代码放在Security配置类就搞定了
@Bean public PasswordEncoder passwordEncoder() { return new PasswordEncoder() { @Override public String encode(CharSequence charSequence) { return getMd5(charSequence.toString()); } @Override public boolean matches(CharSequence charSequence, String s) { return getMd5(charSequence.toString()).equals(s); } }; } public static String getMd5(String input) { try { // Static getInstance method is called with hashing SHA MessageDigest md = MessageDigest.getInstance("MD5"); // digest() method called // to calculate message digest of an input // and return array of byte byte[] messageDigest = md.digest(input.getBytes()); // Convert byte array into signum representation BigInteger no = new BigInteger(1, messageDigest); // Convert message digest into hex value String hashtext = no.toString(16); while (hashtext.length() < 32) { hashtext = "0" + hashtext; } return hashtext; } catch (Exception e){ return e.toString(); } }