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

Delete - Forbidden ao autenticar o moderador

Olá! Segui os passos da aula 01 tópico 05 e mesmo assim da forbidden ao tentar excluir o tópico como moderador.

Inseri o moderador e sua permissão na tabela USUARIO_PERFIS

INSERT INTO USUARIO(nome, email, senha) VALUES('Aluno', 'aluno@email.com', '$2a$10$sFKmbxbG4ryhwPNx/l3pgOJSt.fW1z6YcUnuE2X8APA/Z3NI/oSpq');
INSERT INTO USUARIO(nome, email, senha) VALUES('Moderador', 'moderador@email.com', '$2a$10$sFKmbxbG4ryhwPNx/l3pgOJSt.fW1z6YcUnuE2X8APA/Z3NI/oSpq');

INSERT INTO PERFIL(id, nome) VALUES(1, 'ROLE_ALUNO');
INSERT INTO PERFIL(id, nome) VALUES(2, 'ROLE_MODERADOR');

INSERT INTO USUARIO_PERFIS(usuario_id, perfis_id) VALUES(1, 1);
INSERT INTO USUARIO_PERFIS(usuario_id, perfis_id) VALUES(2, 2);

Na SecurityConfigurations adicionei a permissão ao Role "moderador"

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
        .antMatchers(HttpMethod.GET, "/topicos").permitAll()
        .antMatchers(HttpMethod.GET, "/topicos/*").permitAll()
        .antMatchers(HttpMethod.POST, "/auth").permitAll()
        .antMatchers(HttpMethod.GET, "/actuator/**").permitAll()
        .antMatchers(HttpMethod.DELETE, "/topicos/*").hasRole("MODERADOR")
        .anyRequest().authenticated()
        .and().csrf().disable()
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
        .and().addFilterBefore(new AutenticacaoViaTokenFilter(tokenService, usuarioRepository), UsernamePasswordAuthenticationFilter.class);
    }

No POSTMAN

Fiz uma requisição no endpoint: http://localhost:8080/auth passando o Body:

{
    "email":"moderador@email.com",
    "senha":"123456"
}

E obtive o token de autenticação.

Fiz a requisição do tipo delete com o token na parte de Authorization e com o mesmo body utilizado anteriormente. Porém só consigo o resultado:

{
    "timestamp": "2021-06-07T15:47:57.860+00:00",
    "status": 403,
    "error": "Forbidden",
    "message": "Forbidden",
    "path": "/topicos/2"
}
3 respostas

Também estou com o mesmo problema, segui todos os passos mas não consigo realizar o delete, retorna o erro 403 mesmo após realizar a autenticação como moderador e informar o token de acesso.

Oi Pessoal,

Verifiquem no console do H2 se os registros foram inseridos corretamente nas tabelas.

solução!

Olá verifiquei no H2 console e parece que foi tudo criado com sucesso, estou anexando os prints que tirei. Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade