[英]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.