Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Java Spring Boot - Help, please

Link repositório github: https://github.com/beater27032001/blog-back

Estou criando um API de blog com o springboot, ja finalizei todo o código e deixei um ADMIN pre cadastrado(pois somente quem for admin vai poder postar nesse blog, entre outras coisas).

Quando eu utilizo o swagger para fazer qualquer tipo de requisição ele da um erro de StackOverFlowError, tentei add contrutores em algumas classes q ja tinha a anotação Autowired para ver se resolvia mas nada disso.

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

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

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

2 respostas
solução!

Oi José! Tudo bem?

Fui testar por aqui e o que aconteceu foi que você não usou a anotação @Service na classe AuthenticationService. Com isso, o Spring Security não estava conseguindo identificar sua implementação de UserDetailsService para efetuar o login. Depois disso, quando rodei, passou a ter um problema na de conversão de classes. Aí vi que, na mesma classe, você estava retornando uma classe do tipo org.springframework.security.core.userdetails.User, provavelmente importou sem querer, e por isso tava dando erro. Troquei o retorno do método para:

return user;

E aí funcionou!

Tem outras mudanças que fiz enquanto estava tentando rodar, que queria te sugerir também: em várias classes, você estava usando tanto o @Autowired quanto passando os parâmetros pelo construtor. Basta usar uma dessas formas para fazer a injeção de dependências corretamente. Pode ser que usar as duas cause algum bug inesperado. Além disso, nos repositories, você estava utilizando a anotação @Repository também, mas ela não é necessária, pois já vem quando estendemos da classe JpaRepository.

Espero ter ajudado! Qualquer dúvida, estou por aqui.

Abraços e bons estudos!

Deu certo, muito obrigado. Agora tem outro problema que eu não to conseguindo resolver, eu queria que somente quem possui a role: ROLE_ADMIN pudesse editar ou excluir usuários e postar, editar ou deletar artigos. Eu estou usando tokens de usuários comuns e eles estão conseguindo postar artigos, além de outros bugs, se tu puder me ajudar dnv <3 O código do github é o mesmo.