异常出现 :
最近在使用SpringBoot+SpringSecurity+Redis做项目的时候,出现了一个序列化异常
官方说明 : 点击访问
解决办法 :
- pom.xml中升级fastjson的依赖包 我的是1.2.33升级为1.2.50
- redisConfig的redisTemplate中添加白名单
@Configuration
public class RedisConfig {
@Bean
@SuppressWarnings(value = { "unchecked", "rawtypes" })
@Autowired(required = false)//降级注入的检测级别
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
//添加白名单 不然会报错!!!!!-------------
ParserConfig.getGlobalInstance().addAccept("org.springframework.security.core.authority.");
TypeUtils.addMapping("org.springframework.security.core.authority.SimpleGrantedAuthority",
SimpleGrantedAuthority.class);
//--------------------
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory);
FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);
// 使用StringRedisSerializer来序列化和反序列化redis的key值
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(serializer);
// Hash的key也采用StringRedisSerializer的序列化方式
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(serializer);
template.afterPropertiesSet();
return template;
}
}
重启服务解决。