Olá, estou desenvolvendo uma aplicação e preciso usar o banco MongoDB com base no projeto das aulas iniciei apenas a entidade usuário para tentar gerar o token e salvar no banco. No banco está ok, salvou meu usuário, criou a tabela certinho. No meu controller de usuários criei 2 endpoints um para listar todos (GET) e outro para salvar (POST) porém no endpoint (POST)"/auth" recebo um 400 pelo Postman. Seguem minhas classes:
Usuário:
@Document(collection = "usuario")
public class Usuario implements UserDetails, Serializable {
private static final long serialVersionUID = 1L;
@Id
//@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;
private String nome;
private String email;
private String senha;
@ManyToMany(fetch = FetchType.EAGER)
private List<Perfil> perfis = new ArrayList<>();
public Usuario(){
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Usuario other = (Usuario) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return this.perfis;
}
@Override
public String getPassword() {
return this.senha;
}
@Override
public String getUsername() {
return this.email;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
Controller de Usuário:
@RestController
@RequestMapping("API_SGS_TI/usuario")
public class UsuarioController {
@Autowired
private UsuarioRepository repository;
@GetMapping("/listarTodos")
public ResponseEntity<List<Usuario>> findAll(){
return ResponseEntity.ok(repository.findAll());
}
@PostMapping("/salvar")
public ResponseEntity<Usuario> insert(@RequestBody @Valid Usuario user){
return ResponseEntity.status(HttpStatus.CREATED).body(repository.insert(user));
}
}
Repository de Usuário:
@Repository
public interface UsuarioRepository extends MongoRepository<Usuario, String> {
Optional<Usuario> findByEmail(String email);
}