Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] 슬랙으로 오는 로그 알림에서 기본 WARN 알림을 제외한다. #485

Closed
seokjin8678 opened this issue Oct 2, 2023 · 0 comments · Fixed by #486
Closed
Assignees
Labels
BE 백엔드에 관련된 작업 🏢 인프라 인프라에 관련된 작업 🛠 수정 수정에 관련된 작업

Comments

@seokjin8678
Copy link
Collaborator

seokjin8678 commented Oct 2, 2023

✨ 세부 내용

image

다음과 같이 슬랙에 WARN 로그에 대한 알림이 오고 있습니다.

해당 알림은 GloblaExceptionHandler에서 잡힌 예외로 인해 발생하는 로그가 아닌, 스프링 프레임워크 내의 로그에서 발생하는 알림입니다.

protected boolean isInvalidPath(String path) {
    if (path.contains("WEB-INF") || path.contains("META-INF")) {
        if (logger.isWarnEnabled()) {
            logger.warn(LogFormatUtils.formatValue(
                "Path with \"WEB-INF\" or \"META-INF\": [" + path + "]", -1, true));
        }
        return true;
    }
    if (path.contains(":/")) {
        String relativePath = (path.charAt(0) == '/' ? path.substring(1) : path);
        if (ResourceUtils.isUrl(relativePath) || relativePath.startsWith("url:")) {
            if (logger.isWarnEnabled()) {
                logger.warn(LogFormatUtils.formatValue(
                    "Path represents URL or has \"url:\" prefix: [" + path + "]", -1, true));
            }
            return true;
        }
    }
    if (path.contains("..") && StringUtils.cleanPath(path).contains("../")) {
        if (logger.isWarnEnabled()) {
            logger.warn(LogFormatUtils.formatValue(
                "Path contains \"../\" after call to StringUtils#cleanPath: [" + path + "]", -1, true));
        }
        return true;
    }
    return false;
}

해당 알림으로 인해 중요한 알림을 놓칠 수 있고, 슬랙으로 보낼 필요가 없는 알림이기 때문에 해당 알림을 제외합니다.

⏰ 예상 소요 시간

10분

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드에 관련된 작업 🏢 인프라 인프라에 관련된 작업 🛠 수정 수정에 관련된 작업
Projects
Status: Done
1 participant