Esta dando o erro 403 forbiden em qualquer tentativa no insominia, nao estou nem conseguindo cadastrar o medico, ou exibir ele, e nao esta dando erro na compilação.
https://github.com/allanflm/med.voll
Esta dando o erro 403 forbiden em qualquer tentativa no insominia, nao estou nem conseguindo cadastrar o medico, ou exibir ele, e nao esta dando erro na compilação.
https://github.com/allanflm/med.voll
Oi!
Verifique na aba auth do Insomnia se você está enviando o token JWT corretamente.
Nao estou nem conseguindo gerar o token
Olhei o seu código e não encontrei erros. Verifica no Insomnia se está sem enviar o token nesse requisição de login, pois nela não vai token:
Nao esta marcado, mas ainda nao esta funcionando
Está tudo certo então. Talvez seja no banco de dados. Faz um select na tabela de usuarios e manda o print aqui
na verdade é para rodar: select * from usuarios
ops kkk
Sua tabela está vazia. Precisa fazer o insert do usuário nela para poder fazer login na aplicação.
como eu faço mesmo? pq se eu fizer select * from medicos, pacientes , vai aparecer a mesma coisa
Oi Allan, Boa noite. Sou apenas um estudante aqui do curso, mas espero conseguir te ajudar...
Temos duas alternativas:
**1 - fazer o insert do usuário diretamente no seu banco de dados, rodando o comando:
**
INSERT INTO usuarios (login, senha) VALUES ('nome_de_login', 'senha');
lembre-se de conferir se o nome da tabela e das colunas estão iguais as minhas. E outro ponto... a senha não pode ser passada como "123456" pois o /login está testando a senha com base no BCrypt, então dará erro. Será necessário inserir uma senha BCrypt manualmente.
pode usar o seguinte site para encontrar sua senha codificada: https://bcrypt-generator.com/
2- Criar uma rota em seu controller para criar o usuário:
a minha ficou da seguinte forma:
@PostMapping("/create")
public ResponseEntity criarLogin(@RequestBody @Valid DadosAutenticacao dados) {
Usuario usuario = new Usuario();
BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
usuario.setSenha(encoder.encode(dados.senha()));
usuario.setLogin(dados.login());
repository.save(usuario);
return ResponseEntity.ok("Usuário "+ usuario.getLogin() + " criado com sucesso!");
}
apenas lembre-se de liberar a rota dentro do arquivo SecurityConfigurations.java:
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().authorizeHttpRequests()
.requestMatchers(HttpMethod.POST, "/login").permitAll()
.requestMatchers(HttpMethod.POST, "/login/create").permitAll()
.requestMatchers("/v3/api-docs/**", "/swagger-ui.html","/swagger-ui/**").permitAll()
.anyRequest().authenticated()
.and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
a minha liberação de rota está dessa forma, pois já estou na aula de documentação. Caso você não esteja, basta adaptar apenas incluindo a liberação da rota create logo após a sua rota login.
Espero ter ajudado!