content: package com.bbgcine.overview.jwt;
  
  import com.bbgcine.overview.entity.User;
  import org.springframework.security.core.GrantedAuthority;
  import org.springframework.security.core.authority.AuthorityUtils;
  import org.springframework.security.core.userdetails.UserDetails;
  
  import java.util.Collection;
  
  public class JwtUserDetails implements UserDetails {
  
      private final User user;
  
      public JwtUserDetails(User user) {
          this.user = user;
      }
  
      public Long getId() {
          return this.user.getId();
      }
  
      public String getEmail() {
          return this.user.getEmail();
      }
  
      @Override
      public Collection<? extends GrantedAuthority> getAuthorities() {
          // Neste exemplo, estamos retornando uma role fixa.
          // O ideal é que você tenha um campo de role no seu objeto User e o retorne aqui.
          return AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_USER");
      }
  
      @Override
      public String getPassword() {
          return this.user.getPassword();
      }
  
      @Override
      public String getUsername() {
          // O Spring Security usa "username" como identificador padrão.
          // No seu caso, parece ser o email.
          return this.user.getEmail();
      }
  
      @Override
      public boolean isAccountNonExpired() {
          return true;
      }
  
      @Override
      public boolean isAccountNonLocked() {
          return true;
      }
  
      @Override
      public boolean isCredentialsNonExpired() {
          return true;
      }
  
      @Override
      public boolean isEnabled() {
          return true;
      }
  }