Ola nao consigo efetivar o accesso a nenhum usuario por mais que tentei tentei de vairas maneiras
inclusive conferi se o codigo estaba bem..
no intellij esta tudo correndo normal
por favor me ayuden a corrigir esse problema e a entender..
Ola nao consigo efetivar o accesso a nenhum usuario por mais que tentei tentei de vairas maneiras
inclusive conferi se o codigo estaba bem..
no intellij esta tudo correndo normal
por favor me ayuden a corrigir esse problema e a entender..
Oi!
Manda aqui o código das suas classes: AutenticacaoController
, AutenticacaoService
e Usuario
.
package med.Vol.api.controlador;
import jakarta.validation.Valid;
import med.Vol.api.dominio.usuarios.DatosAutenticacion;
import med.Vol.api.dominio.usuarios.Usuario;
import med.Vol.api.infra.seguridad.ServicioToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/login")
public class ControlAutenticacion {
@Autowired
private AuthenticationManager manager;
@Autowired
private ServicioToken servicioToken;
@PostMapping
public ResponseEntity efetuarLogin(@RequestBody @Valid DatosAutenticacion dados) {
var token = new UsernamePasswordAuthenticationToken(dados.login(), dados.password());
var authentication = manager.authenticate(token);
return ResponseEntity.ok(servicioToken.generarToken((Usuario) authentication.getPrincipal()));
}
}
package med.Vol.api.dominio.usuarios;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
@Service
public class ServicioAutenticacion implements UserDetailsService {
@Autowired
private UsuarioRepositorio repositorio;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return repositorio.findByLogin(username);
}
@Bean
public PasswordEncoder contrasenaEnCodigo(){
return new BCryptPasswordEncoder();
}
}
package med.Vol.api.dominio.usuarios;
import jakarta.persistence.*;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import med.Vol.api.dominio.direccion.Direccion;
import med.Vol.api.dominio.pacientes.DatosActualizaPacientes;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.Collection;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(of = "id")
@Entity(name = "Usuario")
@Table(name = "usuarios")
public class Usuario implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// @Column(name = "acceso")
private String login;
// @Column(name = "contrasena")
private String password;
private boolean activo;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return List.of(new SimpleGrantedAuthority("ROLE_USER"));
}
@Override
public String getPassword() {
return password;
}
@Override
public String getUsername() {
return login ;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
public Usuario(DatosRegistroUsuarios datos) {
this.login = datos.login();
this.password = datos.password();
}
public void atualizarInformaciones(DatosActualizaUsuarios datos) {
if (datos.login() != null) { // si el recurso nombre fuera actualiado se Renombrara
this.login = datos.login();
}
if (datos.password() != null) {
this.password = datos.password();
}
}
public void borrar() {
this.activo = false;
}
}
Obrigada por me atender
Está tudo certo. Talvez o projeto não tenha sido reiniciado após as alterações no código.
Abra a tela de configurações do IntelliJ (atalho CTRL + ALT + S) e verifique dentro do menu Build, Execution, Deployment -> Compiler se a opção Build project automatically está marcada:
Verifique também no meu Advanced Settings se a opção Allow auto-make to start... está marcada:
Pare o projeto e execute novamente após essas mudanças
como pode ver esta tudo marcado, tambem em Advanced Settings
eu tenho como reiniciar as configurações e ajustar tudo de novo?
Seu projeto é esse aqui? https://github.com/Angelag-39/registro-de-Usuario-Java
Atualize ele no GitHub que vou baixar e analisar qual o problema
https://github.com/Dondavid39/registro-medicos-usuarios-pacientes.git
pode tentar por aqui porfavor... ainda nao consigo atualizar esse projeto no meu Git
O problema está na sua classe ServicioAutenticacion
:
@Service
public class ServicioAutenticacion implements UserDetailsService {
@Autowired
private UsuarioRepositorio repositorio;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return repositorio.findByLogin(username);
}
@Bean
public PasswordEncoder contrasenaEnCodigo(){
return new BCryptPasswordEncoder();
}
}
Apague o método contrasenaEnCodigo
, pois isso já foi configurado na classe ConfiguracionesSeguridad
:
@Service
public class ServicioAutenticacion implements UserDetailsService {
@Autowired
private UsuarioRepositorio repositorio;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return repositorio.findByLogin(username);
}
}
deu certo, apareceu o codigo 200, obg mesmo