1
resposta

Erro 403 ao inves do 401

https://cursos.alura.com.br/forum/topico-retorno-como-403-e-nao-401-155647

Esse tópico foi respondido da seguinte forma : Falando pra tratar isso no Handler!

Problema : Sei usar essa classe mas não sei como capturar o erro 403 para poder tratar e transformar em 401. Já vi alguns meios na internet porém todos os erros 403 se transformariam em 401. Eu quero tratar para quando realmente for pra dar 401, dar 401. Pq do jeito que vi na internet, SEMPRE que jogar o erro 403, eu trocaria para 401. Eu quero só consertar esse bug do spring de sempre voltar o 403. Poderiam me auxiliar de como resolve isso no handler?

1 resposta

Oi Victor,

O jeito de personalizar isso é criando um AuthenticationEntryPoint e o adicionando nas configurações de segurança:

public class UnauthorizedEntryPoint implements AuthenticationEntryPoint {

    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException ex) throws IOException, ServletException {
        response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Access Denied");
    }

}
//nas configurações de segurança que libera/restringe as urls
http
   .authenticationEntryPoint(new UnauthorizedEntryPoint());

Só teria que testar para ver se sempre vai vir 401 ou apenas no caso de não estar autenticado.