현재 프로젝트에서 Maven과 Spring을 사용하고 있습니다. 현재 로깅 서비스에 SLF4J 로거를 사용하고 있습니다. 대신 OWASP-ESAPI 로거를 사용하고 싶습니다. 나는 OWASP-ESAPI
보안, 단지 로그 서비스를 사용하고 싶지 않아. 아무도 최소의 노력으로 slf4j 로거를 대체하여 OWASP-ESAPI
로거를 사용하는 방법을 안내해 줄 수 있습니까? 나는 많은 구글 검색을 시도했지만 아무 도움이되지 않습니다. 나는 또한 OWASP-ESAPI
로거에 대한 지식을 얻기위한 몇 가지 링크를 정말 고맙게 생각합니다.OWASP-ESAPI logger help
답변
중요한 점은 ESAPI는 log4j 또는 Commons java.util 로깅에 대해서만 빌드된다는 것입니다. 나는 log4j를 추측하고있다.
1 단계 : 클래스 경로에서 slf4j 라이브러리를 제거하십시오. IDE를 사용하는 경우 응용 프로그램을 "크리스마스 트리"로 만들어야하며 변경해야하는 모든 것을 알려야합니다.
2 단계 : 클래스 경로
3 단계에 ESAPI 추가 : 수동으로 새로운 ESAPI 대응에 SLF4J 로깅 호출을 모두 변환합니다. 이 같은 ESAPI 로거에 대한 참조를 잡아 것입니다 제공된 정보와
Logger logger = ESAPI.getLogger("my.foo.class.Foo");
, 이것은 매우 간단합니다.
참고 : Log4j는 slfj에서 지원하는 일부 서식 지정 호출을 지원하지 않습니다. 이렇게하면 나중에 수동으로 입력을 다시 생성하거나 나중에 모든 인스턴스를 보류 한 다음 slf4j를 계속 사용하지만 [MessageFormatter][1]
을 사용하여 로그 입력을 전달하게됩니다.
slf4j를 제거하도록 코드를 리팩토링하는 것은 끔찍한 해결책입니다. 그 이유는 JUL, JCL, LOG4J 트래픽을 공통 로그 퍼널로 캡처 할 수 없기 때문입니다. 사전 대응은 나쁜 조언입니다.
당신은 7 월 로깅을 사용하도록 ESAPI을 가능하게하고, SLF4J를 통해 7월를 사용하여, 다른 로거에 해당 로그 트래픽과 경로를 캡처 할 수 있습니다 (즉, log4j에 또는 logback). 는 ESAPI.properties에서 이렇게하려면 : ESAPI.Logger = org.owasp.esapi.reference.JavaLogFactory
또 다른 옵션은 ESAPI 로거 인터페이스를 통해 SLF4J 로거 프록시를 구축하는 것입니다. 이 경우에 얻을 수있는 것보다 더 많은 기능을 잃어 버렸다고 생각합니다.
답장을 보내 주셔서 감사합니다. 오랫동안 OWASP ESAPI logger를 삭제했습니다. – Amit
응용 프로그램에 따라 잘못된 조언이 있습니다. 내가이 글을 쓸 때 뒤로 일하는 프로젝트는 주로 log4j를 약간의 slf4j로 사용했다. 그래서 모든 것을 ESAPI 로깅으로 바꾸는 것은 의미가있었습니다. 일반적인 로그 유입 경로가 필요하지 않았습니다. 나는 당신의 첫 번째 옵션을 좋아한다. – avgvstvs