Поддержка прокси Artemis SOCKS - PullRequest
       77

Поддержка прокси Artemis SOCKS

1 голос
/ 04 августа 2020

Поддержка прокси-сервера SOCKS была выпущена в 2.12.0. Вот PR функции. Однако я не могу настроить прокси Artemis SOCKS, используя следующее:

Map<String, Object> params = new HashMap<>();
params.put(TransportConstants.HOST_PROP_NAME, "localhost");
params.put(TransportConstants.PORT_PROP_NAME, "61617"); //<acceptor name="netty">tcp://0.0.0.0:61617</acceptor>
params.put(TransportConstants.PROXY_ENABLED_PROP_NAME, "true");
params.put(TransportConstants.PROXY_HOST_PROP_NAME, "localhost");
params.put(TransportConstants.PROXY_PORT_PROP_NAME, "1080");
params.put(TransportConstants.PROXY_USERNAME_PROP_NAME, "user");
params.put(TransportConstants.PROXY_PASSWORD_PROP_NAME, "WRONG_PASSWORD");

TransportConfiguration transportConfiguration = new TransportConfiguration("org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory", params);
ActiveMQConnectionFactory activeMQConnectionFactory = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, transportConfiguration);
<dependency>
  <groupId>org.apache.activemq</groupId>
  <artifactId>artemis-jms-client</artifactId>
  <version>2.14.0</version>
</dependency>

Это игнорирует конфигурацию прокси. Даже при передаче неправильной конфигурации прокси, такой как несуществующий хост, пароль и имя пользователя, сообщение успешно отправляется брокеру. Это не подведет. Кажется, эти PROXY_* свойства не загружаются.

Я что-то делаю не так?

1 Ответ

0 голосов
/ 04 августа 2020

Если вы используете localhost, настройки прокси игнорируются. См. код для справки. Следовательно, при настройке поддержки прокси вам следует использовать IP-адрес или имя хоста без обратной связи.

Кроме того, чтобы вы знали, что вы можете использовать URL-адрес вместо TransportConfiguration, например:

ActiveMQConnectionFactory activeMQConnectionFactory =  new ActiveMQConnectionFactory("tcp://non_loopback_ip:61617?socksEnabled=true;socksHost=localhost;socksPort=1080;socksUsername=user;socksPassword=WRONG_PASSWORD");
...