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

猜你喜欢

转载自blog.csdn.net/2302_77182979/article/details/134767796