Controle de acesso self ou admin
Usuário acessando seu próprio pedido mesmo não sendo admin.
Atualizado
Usuário acessando seu próprio pedido mesmo não sendo admin.
Atualizado
Mesmo o usuário não sendo Admin, ele pode acessar o SEU próprio pedido. Pra isso vamos fazer o seguinte:
O método de findById do service precisa ter uma lógica: se a pessoa que está acessando não for admin e nem a dona desse pedido (que é o parâmetro ID do método), temos que lançar um 403.
Criaremos uma "ForbiddenExcception" no pacote Exceptions do Service.
Agora, criaremos uma classe chamada AuthService. Nela, implementaremos alguma regras de negócio referente a controle de acesso, veja:
E por fim, no método do Service, injetaremos a classe criada acima: