簡體   English   中英

禁用 Spring 安全日志記錄

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM