Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Cannot make a static reference to the non-static method getLogin() from the type User

estou seguindo a aula e me deparei com esse erro e não sei como resolver . por algum motvo ele nao esta reconhecendo meu metodo get da minha classe User

package br.com.alura.api.infra.security;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Date;

import org.springframework.stereotype.Service;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTCreationException;

import br.com.alura.api.domain.Usuario.User;

@Service
public class TokenService {
    
    public String GerarToken() {
         try {
                var algoritmo = Algorithm.HMAC256("12345678");
                return JWT.create()
                    .withIssuer("API Voll.med")
                    .withSubject(User.getLogin())
                    .withExpiresAt(dataExpiracao())
                    .sign(algoritmo);
            } catch (JWTCreationException exception){
                throw new RuntimeException("erro ao gerrar token jwt", exception);
            }        
    }

    private Instant dataExpiracao() {
        return  LocalDateTime.now().plusHours(2).toInstant(ZoneOffset.of("-03:00"));	}
    
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

@Entity
@Table(name = "usuarios")
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
@NoArgsConstructor	
@Getter
@Setter
public class User implements UserDetails {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long  id ;
    private String login;
    private String senha;
    
    
    
    
    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        // TODO Auto-generated method stub
        return  List.of(new SimpleGrantedAuthority("ROLE_USER" ));
    }
    @Override
    public String getPassword() {
        // TODO Auto-generated method stub
        return senha;
    }
    @Override
    public String getUsername() {
        // TODO Auto-generated method stub
        return login;
    }
    @Override
    public boolean isAccountNonExpired() {
        // TODO Auto-generated method stub
        return true;
    }
    @Override
    public boolean isAccountNonLocked() {
        // TODO Auto-generated method stub
        return true;
    }
    @Override
    public boolean isCredentialsNonExpired() {
        // TODO Auto-generated method stub
        return true;
    }
    @Override
    public boolean isEnabled() {
        // TODO Auto-generated method stub
        return true;
    }
    public void setLogin(String login) {
        this.login = login;
    }

    
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

descobri o erro faltava o paramentro do tipo Usuario Insira aqui a descrição dessa imagem para ajudar na acessibilidade

public String GerarToken(User user) {