问题描述
我需要在Springboot应用程序中记录401未经授权的错误。 我想将其记录到我的应用程序中的某个特定终点,因为它发生了未经授权的错误,我知道在开始时调用api时会捕获这种尝试。
无论如何,我在春季靴子上还能追踪到这个吗? 我尝试通过WebSecurityConfig,但没有帮助。
我正在使用springboot 2。
谢谢。
解决方法
我可以想到2种方法,但可能还有更多方法
- 在控制器中使用自定义
@ExceptionHandler
方法,使其对UnauthorizedException.class
敏感 - 使用
Filter
内省请求/响应-并记录响应401时所需的任何内容。
您可以掌握身份验证入口点并处理http中的一些401逻辑 安全配置:
.authenticationEntryPoint((httpServletRequest,httpServletResponse,e) -> {
log.warn(e.getMessage());
httpServletResponse.setStatus(401);
httpServletResponse.getWriter().print(e.getMessage());
})