프로젝트를 진행하면서 tomcat 보안취약 검사를 한다고 해서 catalina.jar 파일이 필요한 상황이었다.
외장톰캣의 경우 일반적으로 -> 톰캣설치위치($CATALINA_HOME)/lib/catalina.jar 위치에 파일이 있는데,
Spring Boot로 프로젝트를 진행하다 보니 내장톰캣을 사용하게 되어서 catalina.jar 파일을 찾을 수 없었다.
ChatGPT에서 찾아본 결과,
내장된 Tomcat 설정에는 독립 실행형 Tomcat 설치에 있는 것처럼 단일 "catalina.jar" 파일이 없을 수 있습니다.
대신 Tomcat의 핵심 구성 요소는 임베디드 시나리오에서 여러 개의 작은 JAR 파일로 분할되는 경우가 많습니다.
임베디드 Tomcat을 사용하는 경우 일반적으로 필요한 Tomcat 라이브러리를 프로젝트의 종속성으로 포함하고 이러한 라이브러리는 전체적으로 Tomcat의 Catalina 서블릿 컨테이너의 기능을 제공합니다. 포함해야 하는 특정 JAR 파일과 해당 파일의 구성은 사용 중인 Tomcat 버전과 Tomcat을 포함하기 위해 사용하는 프레임워크 또는 접근 방식에 따라 달라질 수 있습니다.
예를 들어 Tomcat이 내장된 Spring Boot를 사용하는 경우 일반적으로 다음과 같은 종속성을 포함합니다.
tomcat-embed-core.jar
tomcat-embed-el.jar
tomcat-embed-websocket.jar
...
이러한 JAR 파일에는 Tomcat이 애플리케이션 내에서 작동하는 데 필요한 관련 클래스와 구성 요소가 포함되어 있습니다. 이러한 JAR 파일의 실제 이름과 구조는 Tomcat 버전과 임베딩 접근 방식에 따라 달라질 수 있습니다.
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>9.0.27</version> <!-- Replace with your desired version -->
</dependency>
</dependencies>
이 설정에서는 기존 Tomcat 설치의 "catalina.jar"에 있는 Catalina의 클래스와 구성 요소가 이러한 내장 라이브러리(tomcat-embed-core에 배포됩니다).
머.. 이렇다고 한다
내장톰캣 (tomcat-embed-core-9.0.27.jar) 파일을 열어보니 org/apache/catalina와
외장톰캣 /lib/catalina.jar 파일의 구조가 거의 비슷한 걸 볼 수 있다.
따라서 내장톰캣의 보안취약 검사 시 tomcat-embed-core-xxx.jar 파일을 이용해야 하지 않나 싶다.
'Programming > Back-End' 카테고리의 다른 글
java.net.BindException "Address alredy in use: bind" 해결/특정 포트 죽이는 방법 (37) | 2023.09.13 |
---|---|
[Java/자바] JWT 토큰 발급 및 JWT/JWK 검증 처리 방법 정리 (1) | 2023.09.01 |
[Java/자바] URLencode와 Base64url 차이점 (0) | 2023.08.30 |
[Java/자바] 한글 문자열 URL 인코딩(encode)/디코딩(decode) 하기 (35) | 2023.08.30 |
[Java/자바] RSA 공개키(publicKey)/개인키(privateKey) 생성 및 파일 추출 (34) | 2023.08.25 |