4장. Camel ActiveMQ 구성 요소 보안
초록
Camel ActiveMQ 구성 요소를 사용하면 Apache ActiveMQ 브로커에 연결할 수 있는 경로에 JMS 끝점을 정의할 수 있습니다. Camel ActiveMQ 엔드포인트를 보호하려면 보안 연결 팩토리를 사용하는 Camel ActiveMQ 구성 요소의 인스턴스를 생성해야 합니다.
4.1. 보안 ActiveMQ 연결 Cryostat
4.1.1. 개요
Apache Camel은 경로에서 Apache ActiveMQ 엔드포인트를 정의하는 데 필요한 Apache ActiveMQ 구성 요소를 제공합니다. Apache ActiveMQ 끝점은 효과적으로 브로커의 Java 클라이언트이며 소비자 끝점(일반적으로 JMS 메시지에 폴링할 경로 시작 시 사용)을 정의하거나 생산자 엔드포인트를 정의합니다(일반적으로 JMS 메시지를 브로커에 보내기 위해 경로의 중간 또는 중간에서 사용됨).
원격 브로커가 보안(SSL 보안, JAAS 보안 또는 둘 다)인 경우 Apache ActiveMQ 구성 요소를 필수 클라이언트 보안 설정으로 구성해야 합니다.
4.1.2. 보안 속성 프로그래밍
Apache ActiveMQ를 사용하면 ActiveMQSslConnectionFactory
JMS 연결 팩토리 인스턴스를 생성하고 구성하여 SSL 보안 설정(및 JAAS 보안 설정)을 프로그래밍할 수 있습니다. JMS 연결 팩토리를 프로그래밍하는 것은 OSGi, J2EE, Tomcat 등과 같은 컨테이너 컨텍스트에서 사용하는 올바른 접근 방식입니다. 이러한 설정은 JMS connection 팩토리 인스턴스를 사용하여 애플리케이션에 로컬이기 때문입니다.
독립 실행형 브로커는 Java 시스템 속성을 사용하여 SSL 설정을 구성할 수 있습니다. 그러나 컨테이너에 배포된 클라이언트의 경우 구성은 전체 OSGi 컨테이너가 아닌 개별 번들에만 적용되어야 하므로 실용적인 접근 방식은 아닙니다. Camel ActiveMQ 끝점은 효과적으로 일종의 Apache ActiveMQ Java 클라이언트이므로 이 제한 사항은 Camel ActiveMQ 엔드포인트에도 적용됩니다.
4.1.3. 보안 연결 팩토리 정의
예 4.1. “보안 연결 프로비저닝” 블루프린트에서 보안 연결 팩토리 8080을 생성하여 SSL/TLS 보안 및 JAAS 인증을 모두 활성화하는 방법을 보여줍니다.
예 4.1. 보안 연결 프로비저닝
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQSslConnectionFactory"> <property name="brokerURL" value="ssl://localhost:61617" /> <property name="userName" value="Username"/> <property name="password" value="Password"/> <property name="trustStore" value="/conf/client.ts"/> <property name="trustStorePassword" value="password"/> </bean>
다음 속성은 ActiveMQSslConnectionFactory
클래스에 지정됩니다.
brokerURL
- 연결할 원격 브로커의 URL입니다. 이 예에서는 로컬 호스트의 SSL 사용 OpenWire 포트에 연결됩니다. 브로커는 호환 포트 설정을 사용하여 해당 전송 커넥터도 정의해야 합니다.
사용자 이름
및암호
-
유효한 JAAS 로그인 자격 증명,
사용자 이름
및암호
. trustStore
-
SSL 연결에 대한 인증서 신뢰 저장소를 포함하는 Java 키 저장소 파일의 위치입니다. 위치는 classpath 리소스로 지정됩니다. 상대 경로가 지정되면 리소스 위치는 classpath의
org/jbossfuse/example
디렉터리를 기준으로 합니다. trustStorePassword
- 신뢰 저장소가 포함된 키 저장소 파일의 잠금을 해제하는 암호입니다.
keyStore
및 keyStorePassword
속성을 지정할 수도 있지만, SSL 상호 인증이 활성화된 경우에만 필요합니다(SSL 핸드셰이크 중에 클라이언트가 X.509 인증서를 브로커에 제공하는 경우).