1、There is no PasswordEncoder mapped for the id “null“
先重写PasswordEncoder
public class CustomPasswordEncoder implements PasswordEncoder { @Override public String encode(CharSequence charSequence){ return charSequence.toString(); } @Override public boolean matches(CharSequence charSequence, String str){ return str.equals(charSequence.toString()); } @Override public boolean upgradeEncoding(String encodedPassword) { return false; } }
实例化
@Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { //解决明文加密 @Bean public PasswordEncoder passwordEncoder(){ return new CustomPasswordEncoder(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { //使用userDetailsService 增加 对密码处理比对 auth .userDetailsService(userDetailsService()); }
2、local class incompatible:stream classdesc serialVersionUID = 420, local class serialVersionUID = 510
造成问题的原因:
这个问题是由于spring-security-core版本升级造成的,项目使用springboot oauth2
老版本boot使用1.5,oauth是和boot对应的版本,生成的token信息存储在Redis中。当我boot升级为2.x的时候就报了上面的错误。
原因是之前的token中user对象的序列serialVersionUID = 420,在升级的版本中从token反序列化user时序列号对不上了。
处理办法:
将之前Redis中存储的信息清空一下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)