3
respostas

Erro 403, nao consigo cadastrar um pedido

Fiz o login e recebi o token, peguei o token e cadastrei um produto usand o hash la na Auth do Postman

{
    "nome":"Joguinho Interativo para Pássaros",
    "descricao":"Brinquedo interativo para estimular pássaros",
    "categoria": "Acessorios",
    "preco": 20.00,
    "estoqueInicial": 3
}

Deu tudo certo, porem quando tento cadastrar um pedido, não consigo pois tenho erro 403, mesmo colocando o hash la na secao de auth O body que usei foi esse

{
    "itens":[
        {
            "produtoId":1,
            "quantidade":1
        }
    ]
}

Já verifiquei se o produto foi para o estoque e foi, tambem verifiquei os Ids e são os mesmos, resposta da listagem de produtos:

{
    "content": [
        {
            "id": 1,
            "nome": "Joguinho Interativo para Pássaros",
            "descricao": "Brinquedo interativo para estimular pássaros",
            "preco": 20.00
        }
    ],
    "pageable": {
        "pageNumber": 0,
        "pageSize": 20,
        "sort": {
            "empty": true,
            "sorted": false,
            "unsorted": true
        },
        "offset": 0,
        "unpaged": false,
        "paged": true
    },
    "last": true,
    "totalElements": 1,
    "totalPages": 1,
    "size": 20,
    "number": 0,
    "sort": {
        "empty": true,
        "sorted": false,
        "unsorted": true
    },
    "first": true,
    "numberOfElements": 1,
    "empty": false
}

O que pode ser o erro ? Por que fica dando 403 so para uma das requisições mas para a outra não ?

3 respostas

Oi Diego! Tudo certo?

Esse erro geralmente indica que o servidor entendeu a solicitação, mas se recusa a autorizá-la. Aqui estão algumas sugestões que podem ajudar a resolver o problema:

  1. Verifique as Permissões: Certifique-se de que o token que você está usando tem as permissões adequadas para a operação de cadastro de pedidos. Às vezes, um token pode permitir certas operações, como cadastrar produtos, mas não outras, como cadastrar pedidos.

  2. Role do Usuário: Verifique se o usuário associado ao token tem a função necessária para realizar a operação. Pode ser que o cadastro de pedidos exija uma função específica que o seu usuário não possui.

  3. Headers no Postman: Assegure-se de que o token está sendo enviado corretamente no cabeçalho da requisição. No Postman, isso geralmente é feito na seção "Authorization", mas você pode verificar se o cabeçalho Authorization está sendo enviado corretamente com o valor Bearer <seu_token>.

Espero que essas dicas ajudem você a encontrar e resolver o problema.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Como eu verifico as permissões de um token ?

Oi, Diego!

Para verificar as permissões do token, você precisa olhar para o payload do JWT que foi gerado após o login. Siga este passo a passo no Postman:

  1. Acesse o site jwt.io.
  2. Cole o seu token na área de decodificação (parte central da tela).
  3. Na aba Payload, veja se existe algum campo como roles, authorities ou scope.

Esses campos definem as permissões associadas ao token. O erro 403 indica que o token foi enviado corretamente, mas não tem autorização para cadastrar pedidos.

Se no payload não estiver aparecendo algo como ROLE_CLIENTE ou outro papel necessário para cadastrar um pedido, o problema está aí.

Ajuste seu código ou faça login com um usuário que tenha a role correta. Se você está usando Spring Security, verifique se o endpoint de pedidos tem alguma anotação como:


@PreAuthorize("hasRole('CLIENTE')")

Se sim, o usuário do seu token precisa ter essa role.

Fico à disposição.