当springsecurity出现SerializationException问题
01 异常发生场景
- 当我使用springsecurity时,登录成功后携带token访问接口出了问题
org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Unrecognized field "username" (class com.example.demo.entity.LoginUser), not marked as ignorable (2 known properties: "msUser", "authorities"])
02 问题发生的原因
- 日志说的很清楚,无法读取 JSON:无法识别的字段
- 原本我以为是存储时格式有问题
- 但是检查了工具类和存储时的代码,确定了没问题
- 后来发现我的实体类没有序列化
03 解决方式
- 在实体类上加上注解@JsonIgnoreProperties(ignoreUnknown = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class LoginUser implements UserDetails {
private MsUser msUser;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;
}
@Override
public String getPassword() {
return msUser.getPassword();
}
@Override
public String getUsername() {
return msUser.getUsername();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
本文含有隐藏内容,请 开通VIP 后查看