Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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;
}