1.java.lang.IllegalArgumentException: idForEncode zhangpeileis not found in idToPasswordEncoder {noop=org.springframework.security.crypto.password.NoOpPasswordEncoder@6a1ef65c, pbkdf2=org.springframework.security.crypto.password.Pbkdf2PasswordEncoder@72976b4, sha256=org.springframework.security.crypto.password.StandardPasswordEncoder@726934e2, scrypt=org.springframework.security.crypto.scrypt.SCryptPasswordEncoder@1319bc2a, bcrypt=org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder@e280403}
这个报错的原因是因为密码加密的标识符,PasswordEncoder找不到这个密码加密的标识符
String idForEncode = "bcrypt";
Map encoders = new HashMap<>();
encoders.put(idForEncode, new BCryptPasswordEncoder());
encoders.put("noop", NoOpPasswordEncoder.getInstance());
encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
encoders.put("scrypt", new SCryptPasswordEncoder());
encoders.put("sha256", new StandardPasswordEncoder());
//passwordEncode的加密标识符不存在
PasswordEncoder passwordEncoder =
new DelegatingPasswordEncoder("qingqing", encoders);
String encode = passwordEncoder.encode("123");
System.out.println(encode);