2017-09-26 2 views
2

부두 서버가 있습니다. HTTPS 트래픽을 구성하고 싶은데, 일부 XML 및 ini 파일을 수정할 수 있습니다 (이 IoC코드에서 부두 서버의 XML에 지정된 구성에 액세스하는 방법

<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> 
    <Set name="KeyStoreType">PKCS12</Set> 
    <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/keystore"/></Set> 
    <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set> 
... 

내가 원하는 것은 sslContextFactory.getKeyStorePath를 호출하는 것입니다, 이것은 XML에서 선호하는 방법) 그러나 나는 다른 클래스에서 XML로 구성된 이러한 것들 중 일부에 액세스하려는입니다() 함수는 내 코드베이스 어딘가에있다. 그러나이 sslContextFactory 인스턴스는 어디에서 찾을 수 있습니까? 어떻게 참조 할 수 있습니까?

답변

0

나는 당신이 묻고있는 것에 대해 완전히 명확하지 않지만, 어쨌든 그것을 찔러 보려고합니다. Jetty를 배포하고 Jetty XML과 ini 파일을 편집하는 것에 익숙하지만 지금은 임베디드 코드의 일부로 Jetty 기능을 사용하려고합니다.

특히 SSLContextFactory의 경우 클래스는 distribution과 함께 제공되는 jetty-util jar 파일의 일부로 포함됩니다. Maven Central에 자체 jar 파일을 다운로드 할 수도 있습니다.

Jetty의 공식 설명서에는 여러 가지 내장 된 Jetty 기능의 예가 포함되어 있습니다. 이 page이 도움이 될 수 있습니다. 구체적으로는 SSL을 사용하는 Multiple Connectors의 예입니다.

+1

시간 내 주셔서 감사합니다. 그것은 내 질문에 대답하지 않습니다 더 명확히하려고 : XML 및 ini 파일을 내 부두 서버를 구성하는 데 사용합니다. 내 응용 프로그램에 포함되어 있지 않기 때문에 독립 실행 형 서버입니다. 그래서 위의 질문에 해당 xml 매개 변수를 사용하여 sslContextFactory 인스턴스를 만듭니다. 내 질문은 키 스토어 경로를 얻으려고하거나 해당 인스턴스에서 reload()를 호출하기를 원하기 때문에 foo.java의 코드에서 sslContextFactory 인스턴스에 대한 참조를 어떻게 가질 수 있습니까? – balazs

0

실제로 jetty 독립 실행 형 서버의 SSLContextFactory에 액세스 할 가능성이 없습니다. Jetty는 여러 응용 프로그램을 동시에 호스트 할 수 있으며 해당 Java 웹 응용 프로그램의 컨테이너 역할을합니다.

Java 응용 프로그램 (예 : jar 패키지) 내에서 부두 서버를 시작하고 SSLContextFactory 인스턴스에 대한 참조를 보유 할 수 있으므로 임베디드 부두 서버 (a solution here)를 사용할 수 있습니다. 너는 좋아한다.

또 다른 옵션은 사용자 지정 응용 프로그램에서 다시 Maven 부두 러너를 사용하여 SslContextFactory를 직접 제어 할 수 있습니다. 이것은 내가 지금 확인할 수 없다, 부는 내가 시도하자마자 당신에게 최신 정보를 줄 것이다.

관련 문제