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

Erro ao autorizar com Roles

Não consigo fazer nenhuma ação quando utilizo o .hasRole("MODERADOR"), o seguinte erro aparece:

https://i.snipboard.io/sCuFVB.jpg

código no github:

https://github.com/ev1illyn/forum-spring-rest-api

11 respostas

Oi Evillyn,

O código está correto.

Pela imagem você tentou fazer um DELETE de um tópico, sendo que agora você precisa antes se autenticar como MODERADOR e enviar o token de moderador para conseguir deletar.

Oiiiiii Rodrigo, muito obrigada por responder o tópico...

Eu já estou tentando deletar autenticada como moderadora, foi mal não ter colocado o resto dos prints kk Segue:

-- configuração de autenticação: https://i.snipboard.io/sEcIuD.jpg

-- banco de dados https://i.snipboard.io/9EIx0Y.jpg

-- autenticação: https://i.snipboard.io/g3P09Y.jpg

-- delete (403 forbidden) https://i.snipboard.io/ka8Ecz.jpg

Ah legal!

Pelo seu print do banco de dados acho que o nome dos roles na tabela está sem o underline:

ROLE_MODERADOR e ROLE_ALUNO

Dá uma conferida nisso.

Já tinha conferido isso também, já tentei tirar o ROLE_ de ROLE_MODERADOR(e deu erro, porque o padrão é colocar com ele), já coloquei de volta, mas continua sem dar certo...

https://i.snipboard.io/8ZsgGf.jpg

O código está correto, então é provável que o problema seja em relação ao PROFILE.

Essa sua classe de segurança está anotada com @Profile("prod"), então essas configurações somente serão carregadas se o profile ativo ao rodar a aplicação seja prod.

Dá uma conferida nisso também.

Oi moço kkkk. Eu estou colocando no profile("prod") sim, eu tentei até antes de colocar os profiles e tal..

ps: Eu só posto aqui no fórum da alura depois de ter pesquisado e tentado antes.

https://i.snipboard.io/J5Sbgt.jpg

https://i.snipboard.io/imdxqY.jpg

https://i.snipboard.io/b5SwJB.jpg

https://i.snipboard.io/Urc8JQ.jpg

https://i.snipboard.io/PkdytL.jpg

estranho então.

Eu baixei o seu projeto e rodei aqui no meu computador.

Rodei sem definir o profile e tentei acessar: http://localhost:8080/topicos e redirecionou pra pagina de login.

Depois rodei com profile prod e carregou normalmente o json com os topicos.

Eu tentei rodar sem profile(default) e deu "401 unauthorized". Acredito que seja porque as config de segurança só estão com o profile prod e dev e n tenha nenhum default. Enfim, você tentou deletar o tópico com o profile prod?

Boa noite Evillyn, estava com o mesmo problema, consegui resolver o problema removendo o projeto que eu tinha dos cursos anteriores, baixe o projeto inicial aqui do curso e após fazer novamente as configurações, tudo funcionou normalmente.

Oi, Cleiton. Obrigada por responder!

solução!

https://github.com/xDrumstick solucionou o problema:

Na classe Perfil.java

antes

@Override
public String getAuthority() {
return null;
}

depois

@Override
public String getAuthority() {
return this.nome;
}