1
resposta

Como responder um código 401 - Unauthorized

No exemplo, a solução da não autorização pelo cabeçalho do token foi a utilização de um lançamento de uma exceção. Não seria mais correto responder um código 401 - Unauthorized para o cliente?

Caso sim, como faríamos isso no código dentro da função getItens?

1 resposta

Olá, Danielson!

Responder um código 401 - Unauthorized para o cliente é uma prática recomendada quando ocorre uma não autorização. Para fazer isso no código dentro da função getItens, você pode utilizar a classe Response do JAX-RS para construir a resposta HTTP.

Aqui está um exemplo de como você pode fazer isso:

import javax.ws.rs.core.Response;

public class SeuWebService {

    public Response getItens() {
        // Verifica se o cliente está autorizado
        if (!clienteEstaAutorizado()) {
            // Retorna uma resposta com o código 401 - Unauthorized
            return Response.status(Response.Status.UNAUTHORIZED).build();
        }
        
        // Restante do código da função getItens
        
        // Retorna a resposta com os itens
        return Response.ok(itens).build();
    }
    
    private boolean clienteEstaAutorizado() {
        // Lógica para verificar a autorização do cliente
        
        // Retorna true se o cliente estiver autorizado, caso contrário, retorna false
    }
}

Nesse exemplo, a função getItens verifica se o cliente está autorizado chamando o método clienteEstaAutorizado(). Caso o cliente não esteja autorizado, é retornada uma resposta com o código 401 - Unauthorized utilizando Response.status(Response.Status.UNAUTHORIZED).build(). Caso contrário, o restante do código da função é executado e a resposta com os itens é retornada utilizando Response.ok(itens).build().

Espero ter ajudado e bons estudos!