2015-03-27 3 views
0

В моем проекте messagedriven у меня есть одна точка, для которой требуется JMX, удаление очередей сообщений.Подключиться к JMX через SSL по весне

В настоящее время я создаю свои MBean на qpid брокера, как следующее:

<bean name="jmxConnection" 
    class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean" 
    p:serviceUrl="service:jmx:rmi:///jndi/rmi://localhost:8999/jmxrmi" > 
    <property name="environment"> 
     <map> 
      <entry key="jmx.remote.credentials"> 
       <bean class="org.springframework.util.StringUtils" 
        factory-method="commaDelimitedListToStringArray"> 
        <constructor-arg value="username, password" /> 
       </bean> 
      </entry> 
     </map> 
    </property> 
</bean> 

<bean id="managedBroker" class="org.springframework.jmx.access.MBeanProxyFactoryBean" 
    p:objectName='org.apache.qpid:type=VirtualHost.VirtualHostManager,VirtualHost="default"' 
    p:server-ref="jmxConnection" 
    p:proxyInterface="org.apache.qpid.management.common.mbeans.ManagedBroker" /> 

Это работает, но я хочу использовать SSL. На стороне брокера я могу установить SSL для соединения JMX.

Руководство Qpid сообщает, что доверительный магазин должен быть установлен через jconsole.

jconsole -J-Djavax.net.ssl.trustStore=jmxtruststore.jks -J-Djavax.net.ssl.trustStorePassword=password 

Возможно ли установить доверительное хранилище непосредственно на jmxConnection с помощью Spring?

ответ

0

Нет, вы не можете установить доверительное хранилище непосредственно на jmxConnection, однако вы можете использовать эту карту окружения для установки SslRMIServerSocketFactory и SslRMIClientSocketFactory для jmxConnection. Эти два класса будут управлять сокетами SSL для сервера и клиента. Я считаю, что ключи карты окружения для этих двух классов являются «jmx.remote.rmi.server.socket.factory» и «jmx.remote.rmi.client.socket.factory» соответственно.

Вам также нужно будет установить java-свойства javax.net.ssl.trustStore и javax.net.ssl.trustStorePassword в своем весеннем проекте (либо путем передачи переменных среды во время выполнения, либо путем явной настройки их в приложении самостоятельно. После этого ваш jmxConnection также будет использовать SSL.

Смежные вопросы