我们使用自定义过滤器来进行身份验证。
我们的自定义过滤器扩展自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);
}是否可以避免此日志记录,而不必实际覆盖该函数。
发布于 2019-09-30 05:10:09
在springboot中,日志记录级别可以设置为TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF。在application.yml或application.properties中设置以下内容可以配置根记录器级别:
logging.level.root=warn除此之外,springboot还允许根据组或类设置日志记录级别。
通常情况下,能够将相关的记录器分组在一起,以便能够同时配置它们是非常有用的。例如,您可能通常会更改所有与Tomcat相关的记录器的日志记录级别,但您无法轻松地记住顶级包。 为了帮助解决这个问题,Spring允许您在Spring环境中定义日志组。例如,您可以通过将“tomcat”组添加到您的application.properties中来定义它: logging.group.tomcat=org.apache.catalina,org.apache.coyote,org.apache.tomcat
实际上,springbobot为我们提供了为类设置日志记录级别的能力。因此,在您的示例中,您可以将过滤器类的日志记录级别设置为ERROR,这样就不会从它生成不必要的日志,或者将其设置为OFF。另一种方法是关闭整个spring安全组的日志记录(不建议这样做,因为您可能会丢失许多可能有用的日志):
logging.level.com.security.BasicAuthenticationFilter=ERROR读取文档
发布于 2019-09-30 05:13:58
有多种方法处理相同的问题。
从命令行到
-Dlogging.level.org.springframework.security.web.authentication.www=OFF来自Logger configuration
可以将不同的日志级别设置为不同的类,关闭所需类的日志记录。
根据Spring页面这里 26.4日志级别
所有受支持的日志记录系统都可以在Spring中(例如,在application.properties中)设置记录器级别,方法是使用logging.level.=,其中级别是跟踪、调试、信息、警告、错误、致命或关闭级别之一。可以使用logging.level.root配置根记录器。
详细阅读本教程这里
https://stackoverflow.com/questions/58161317
复制相似问题