2017-03-23 2 views
2

아파치 카멜 프로젝트에서 우리는 .jks 파일을 필요로하는 휴식 서비스를 사용하고 있습니다.패브릭 프로필에 .jks 파일 저장

  • 현재 우리는 .jks 파일을 실제 위치에 저장하고이를 Camel 프로젝트에서 참조하고 있습니다. 퓨즈 관리 콘솔에만 액세스 할 수 있고 관리 콘솔에서 액세스 할 수있는 실제 위치에는 액세스 할 수 없기 때문에 항상 사용할 수는 없습니다.

  • 다른 옵션은 환경에 따라 인증서가 변경 될 수 있기 때문에 사용할 수없는 번들 내에 키 파일을 저장하는 것입니다.

이 시나리오에서 키 파일을 저장할 때 더 좋은 솔루션은 무엇일까요? 내가 생각하는에 대해

  • 하나의 옵션은 패브릭 프로필.jks 파일을 저장했다. 그러나 그렇게 할 방법을 찾지 못했습니다. Fabric 프로파일에 파일을 저장할 수 있습니까?

답변

1

.jks을 Java 패키지에 저장하고이를 리소스로 읽는 것은 어떻습니까?
org.niyasc.jks 수입품을 묶어 거기에서 파일을로드합니다. 번들은 환경간에 변경 될 필요가 없습니다.

그런 다음 번들 두 개를 작성하여 동일한 패키지 org.niyasc.jks (프로덕션 파일과 테스트 파일이있는 패키지)을 제공하십시오.

생산 ENV :
RestConsumerBundle + ProductionJksProviderBundle

시험 ENV :
RestConsumerBundle + TestJksProviderBundle

마음이 둘 다 가능하다 배포 및 RestConsumerBundle이 배포 처음에 바인딩됩니다 묶음. 결국 OSGi 지시문을 사용하여 그 중 하나에 우선 순위를 부여 할 수 있습니다.

편집 :
더 우아한 해결책이 InputStream 또는 byte[].jks를 노출 OSGi 서비스를 만드는 것입니다. 기분이 좋다면 JNDI를 가지고 놀 수도 있습니다. 청사진에서 종속성을 필수로 선언하므로 서비스를 사용할 수없는 경우 번들이 시작되지 않습니다.

<!-- RestConsumerBundle --> 
<reference id="jksProvider" 
      interface="org.niyasc.jks.Provider" 
      availability="mandatory"/> 
1

JKS 파일을 퓨즈 프로파일에 저장하는 것이 좋습니다.

"mq-broker-Group.BrokerName"과 같은 브로커 프로필을 만든 경우 Fuse 웹 콘솔을 통해 확인하십시오.

그런 다음 "truststore.file = profile : truststore"에서처럼 jks 파일을 등록 정보 파일의 자원으로 액세스 할 수 있습니다.JKS "

또한 체크"는 SSL keystore.jks 및 truststore.jks 사용자 정의는 "이 장의 섹션 파일 :. 그것은 좋은 포인터를 가지고 https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html/fabric_guide/mq#MQ-BrokerConfig

는 파일을 추가하는 방법에 대해서 패브릭 프로필, 당신은 SRC/메인/fabric8에서 모든 자원을 저장하고 fabric8 Maven 플러그인을 사용할 수 있습니다 자세한 내용은 다음을 참조하십시오. https://fabric8.io/gitbook/mavenPlugin.html

-Codrin

관련 문제