如何在Springboot应用程序中处理401未经授权的错误

问题描述

我需要在Springboot应用程序中记录401未经授权的错误。 我想将其记录到我的应用程序中的某个特定终点,因为它发生了未经授权的错误,我知道在开始时调用api时会捕获这种尝试。

无论如何,我在春季靴子上还能追踪到这个吗? 我尝试通过WebSecurityConfig,但没有帮助。

我正在使用springboot 2。

谢谢。

解决方法

我可以想到2种方法,但可能还有更多方法

  1. 在控制器中使用自定义@ExceptionHandler方法,使其对UnauthorizedException.class敏感
  2. 使用Filter内省请求/响应-并记录响应401时所需的任何内容。
,

您可以掌握身份验证入口点并处理http中的一些401逻辑 安全配置:

  .authenticationEntryPoint((httpServletRequest,httpServletResponse,e) -> {
                log.warn(e.getMessage());
                httpServletResponse.setStatus(401);
                httpServletResponse.getWriter().print(e.getMessage());
            })