5장. Camel CXF 구성 요소 보안


초록

이 장에서는 Camel CXF 프록시 데모를 시작점으로 사용하여 Camel CXF 엔드포인트에서 SSL/TLS 보안을 활성화하는 방법을 설명합니다. Camel CXF 구성 요소를 사용하면 Apache CXF 엔드포인트를 Apache Camel 경로에 추가할 수 있습니다. 이를 통해 Apache Camel에서 웹 서비스를 시뮬레이션하거나 WS 클라이언트와 웹 서비스 간에 경로를 인터푸핑하여 추가 처리(여기에 고려됨)를 수행할 수 있습니다.

5.1. Camel CXF 프록시 데모

5.1.1. 개요

OSGi에서 Camel CXF 엔드포인트를 보호하는 방법을 설명하기 위해 이 튜토리얼은 Camel CXF 프록시 인 Apache Camel의 독립 실행형 배포에서 제공되는 예를 기반으로 합니다. 그림 5.1. “Camel CXF 프록시 개요” 이 데모의 작동 방식에 대한 개요 제공

그림 5.1. Camel CXF 프록시 개요

Camel cxf 01

RealWebServiceBean 에 의해 구현되는 보고서 사고는 사고(예: 트래픽 사고)의 세부 정보를 수신하고 클라이언트에 추적 코드를 반환합니다. 그러나 WS 클라이언트는 요청을 실제 웹 서비스로 직접 전송하는 대신 WS 클라이언트와 실제 웹 서비스 간에 서로 배치되는 Camel CXF 엔드포인트에 연결합니다. Apache Camel 경로는 실제 웹 서비스로 전달하기 전에 WSDL 메시지에서 일부 처리를 수행합니다.

주의

SSL/TLS 보안을 활성화하는 경우 Poodle 취약점(CVE-2014-3566) 으로부터 보호하기 위해 SSLv3 프로토콜을 명시적으로 비활성화해야 합니다. 자세한 내용은 JBoss Fuse 6.x 및 JBoss A-MQ 6.x에서 SSLv3 비활성화 를 참조하십시오.

5.1.2. 수정

OSGi 컨텍스트에서 Camel CXF 엔드포인트에서 SSL/TLS를 활성화하는 방법을 설명하기 위해 이 장에서는 다음과 같이 기본 데모를 수정하는 방법에 대한 지침을 설명합니다.

  1. WS 클라이언트와 Camel CXF 끝점 간의 연결 시 SSL/TLS 보안이 활성화됩니다.
  2. Apache Camel 경로와 RealWebServiceBean Quarkus는 모두 OSGi 컨테이너에 배포됩니다.

5.1.3. 데모 코드 가져오기

Camel CXF 프록시 데모는 InstallDir/extras 디렉터리에 포함된 Apache Camel의 독립 실행형 배포에서만 사용할 수 있습니다. 표준 아카이브 유틸리티를 사용하여 Camel 아카이브 파일을 확장하고 파일 시스템의 편리한 위치로 콘텐츠를 추출합니다.

CamelInstallDir 에 Apache Camel을 설치했다고 가정하면 다음 디렉터리에서 Camel CXF 프록시 데모를 찾을 수 있습니다.

CamelInstallDir/examples/camel-example-cxf-proxy

5.1.4. 샘플 인증서 가져오기

이 데모에는 X.509 인증서가 필요합니다. 실제 배포에서는 개인 인증 기관을 사용하여 이러한 인증서를 직접 생성해야 합니다. 그러나 이 데모에서는 Apache CXF wsdl_first_http 예제의 일부 샘플 인증서를 사용합니다. 이 데모는 InstallDir/extras 디렉터리에 포함된 Apache CXF의 독립 실행형 배포에서 사용할 수 있습니다. 표준 아카이브 유틸리티를 사용하여 CXF 아카이브 파일을 확장하고 파일 시스템의 편리한 위치로 콘텐츠를 추출합니다.

CXFInstallDir 에 Apache CXF를 설치했다고 가정하면 다음 디렉터리에서 wsdl_first_http 데모를 찾을 수 있습니다.

CXFInstallDir/samples/wsdl_first_http

5.1.5. WSDL 계약의 물리적 부분

WSDL 계약의 물리적 부분은 wsdl:servicewsdl:port 요소를 나타냅니다. 이러한 요소는 특정 웹 서비스 끝점에 연결하는 데 필요한 전송 세부 정보를 지정합니다. 이 데모의 목적을 위해 이는 계약의 가장 흥미로운 부분이며 예 5.1. “ReportIncidentEndpointService WSDL Service” 에 표시됩니다.

예 5.1. ReportIncidentEndpointService WSDL Service

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    ...
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	targetNamespace="http://reportincident.example.camel.apache.org">
    ...
    <!-- Service definition -->
    <wsdl:service name="ReportIncidentEndpointService">
        <wsdl:port name="ReportIncidentEndpoint" binding="tns:ReportIncidentBinding">
            <soap:address location="http://localhost:9080/camel-example-cxf-proxy/webservices/incident"/>
        </wsdl:port>
    </wsdl:service>

</wsdl:definitions>
참고

애플리케이션 코드가 주소 URL의 기본값을 재정의하므로 WSDL 계약( soap:address 요소의 위치 특성 값)에 나타나는 주소 URL은 중요하지 않습니다.

5.1.6. 자세한 내용은 WSDL 주소 지정

WS 클라이언트에는 WSDL 서비스 이름, WSDL 포트 이름 및 웹 서비스주소 URL 이라는 세 가지 정보가 필요합니다. 다음 주소 지정 세부 사항은 프록시 웹 서비스 및 실제 웹 서비스에 연결하는 데 사용됩니다.

WSDL 서비스 이름

WSDL 서비스의 전체 QName은 다음과 같습니다.

{http://reportincident.example.camel.apache.org}ReportIncidentEndpointService
WSDL 포트 이름

WSDL 포트의 전체 QName은 다음과 같습니다.

{http://reportincident.example.camel.apache.org}ReportIncidentEndpoint
주소 URL

프록시 웹 서비스 끝점의 주소 URL(HTTPS 프로토콜 사용)은 다음과 같습니다.

https://localhost:9080/camel-example-cxf-proxy/webservices/incident
참고

이전 주소는 번들의 Spring 구성 파일의 cxf:cxfEndpoint 요소, src/main/resources/META-INF/spring/camel-config.xml 을 사용하여 reportIncident scaling을 생성할 때 지정됩니다.

실제 웹 서비스 끝점의 주소 URL(HTTP 프로토콜 사용)은 다음과 같습니다.

http://localhost:9081/real-webservice
참고

이전 주소는 번들의 Spring 구성 파일인 src/main/resources/META-INF/spring/camel-config.xmlrealWebService RAM이 생성될 때 지정됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.