com.alibaba.fastjson.JSONException: default constructor not found. class org.springframework.security.core.authority.SimpleGrantedAuthority
时间: 2023-12-29 13:03:14 浏览: 36
这个异常提示信息是FastJSON序列化时出现的,因为SimpleGrantedAuthority类没有无参构造函数,FastJSON默认使用无参构造函数创建对象。解决这个问题有两个方法:
1. 在SimpleGrantedAuthority类中添加无参构造函数。
```
public SimpleGrantedAuthority() {}
```
2. 配置FastJSON使用Spring提供的ObjectSerializer,该序列化器可以正确地处理Spring Security的SimpleGrantedAuthority类。
```
FastJsonConfig fastJsonConfig = new FastJsonConfig();
SerializerFeature[] serializerFeatures = new SerializerFeature[]{
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteMapNullValue
};
fastJsonConfig.setSerializerFeatures(serializerFeatures);
SerializeConfig serializeConfig = SerializeConfig.getGlobalInstance();
serializeConfig.put(SimpleGrantedAuthority.class, org.springframework.security.jackson2.SimpleGrantedAuthoritySerializer.instance);
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
```
其中,配置了org.springframework.security.jackson2.SimpleGrantedAuthoritySerializer序列化器,用于处理SimpleGrantedAuthority类的序列化。