[英]Disable Spring Security Logging
我们正在使用自定义过滤器进行身份验证。
我们的自定义过滤器从 BasicAuthenticationFilter 扩展而来。 我们在我们的应用程序中仅使用基本身份验证。 我们这样做是因为我们想在我们的身份验证入口点处理不同的身份验证场景。
每当调用 API 时,我们的过滤器就会启动,这会导致在控制台上打印大量日志。 这些日志本身来自 BasicAuthenticationFilter.class(我们的过滤器已扩展)
if (this.authenticationIsRequired(username)) {
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, tokens[1]);
authRequest.setDetails(this.authenticationDetailsSource.buildDetails(request));
Authentication authResult = this.authenticationManager.authenticate(authRequest);
if (debug) {
this.logger.debug("Authentication success: " + authResult);
}
SecurityContextHolder.getContext().setAuthentication(authResult);
this.rememberMeServices.loginSuccess(request, response, authResult);
this.onSuccessfulAuthentication(request, response, authResult);
}
是否可以避免这种日志记录,而不必实际覆盖 function。
在 springboot 中,日志级别可以设置为TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF
。 在 application.yml 或 application.properties 中设置以下内容可以配置根记录器级别:
logging.level.root=warn
除此之外,springboot 还允许根据组或 class 设置日志记录级别。
能够将相关的记录器组合在一起通常很有用,以便可以同时配置它们。 例如,您可能通常会更改所有 Tomcat 相关记录器的记录级别,但您不容易记住顶级包。
为了解决这个问题,Spring Boot 允许您在 Spring 环境中定义日志记录组。 例如,您可以通过将“tomcat”组添加到 application.properties 来定义它:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
实际上 springbobot 为我们提供了为类设置日志级别的能力。 因此,在您的情况下,您可以将过滤器 class 的日志记录级别设置为ERROR
,以便不会从中生成不需要的日志或将其设置为OFF
。 另一种方法是关闭整个 spring 安全组的日志记录(不建议这样做,因为您可能会丢失很多可能有用的日志):
logging.level.com.security.BasicAuthenticationFilter=ERROR
阅读文档
有多种方法可以处理相同的
从命令行
-Dlogging.level.org.springframework.security.web.authentication.www=OFF
从记录器配置
您可以将各种日志级别设置为不同的类,关闭所需 class 的日志记录
根据此处的 Spring 页 26.4 日志级别
所有受支持的日志记录系统都可以使用 logging.level.= 在 Spring 环境中(例如,在 application.properties 中)设置记录器级别。= 其中级别是 TRACE、DEBUG、INFO、WARN、ERROR、FATAL 或 OFF 之一. 可以使用 logging.level.root 配置根记录器。
在此处详细阅读教程
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.