content: 
  package cn.datax.service.data.metadata.model;
  
  import com.alibaba.fastjson.annotation.JSONField;
  import lombok.AllArgsConstructor;
  import lombok.Getter;
  import org.springframework.security.core.userdetails.UserDetails;
  
  import java.util.List;
  import java.util.Set;
  import java.util.stream.Collectors;
  
  /**
   * @author AllDataDC
   * @date 2023-01-27
   */
  @Getter
  @AllArgsConstructor
  public class JwtUserDto implements UserDetails {
  
      public final UserLoginDto user;
  
      private final List<Long> dataScopes;
  
      private final List<AuthorityDto> authorities;
  
      public Set<String> getRoles() {
          return authorities.stream().map(AuthorityDto::getAuthority).collect(Collectors.toSet());
      }
  
      @Override
      @JSONField(serialize = false)
      public String getPassword() {
          return user.getPassword();
      }
  
      @Override
      @JSONField(serialize = false)
      public String getUsername() {
          return user.getUsername();
      }
  
      @JSONField(serialize = false)
      @Override
      public boolean isAccountNonExpired() {
          return true;
      }
  
      @JSONField(serialize = false)
      @Override
      public boolean isAccountNonLocked() {
          return true;
      }
  
      @JSONField(serialize = false)
      @Override
      public boolean isCredentialsNonExpired() {
          return true;
      }
  
      @Override
      @JSONField(serialize = false)
      public boolean isEnabled() {
          return user.getEnabled();
      }
  }
  