当springsecurity出现SerializationException问题

当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;
    }
}

你可能感兴趣的:(SpringSecurity,java,开发语言,tomcat,spring,boot)