2015-10-20 3 views
0

Я борюсь с небольшим доказательством концепции для функции, которая нам нужна для более крупного проекта.Аутентификация между Mule/Anypoint JMS и JBoss/Wildfly9?

На моей локальной машине у меня есть установка Wildfly 9 (с настройкой пользователя, пароля и группы). Я могу отправлять сообщения через HornetQ из небольшой Java-программы, и я могу играть с <security-enabled> и пользователем/паролем и видеть, что он работает, или нет, как я ожидаю. Большой!

Однако, у меня есть простой поток Mule, который пытается отправить сообщение через исходящую конечную точку JMS - но это всегда терпит неудачу с «HQ119031: Не удается проверить пользователя: нулевой», хотя я (попробуйте) укажите имя. Я просто не могу понять, где и как указать пользователя/пароль, который я знаю (из программы Java), чтобы работать.

Я знаю, что у коллеги, который дал мне не очень много информации, что он уже вступил в контакт с поддержкой MuleSoft, которые говорят, что «они не знают о Wildfly в сочетании с Mule» и не могут Помогите.

Вот мой разъем и отливы:

<jms:connector name="Wildfly9JMSConnector" 
    jndiInitialFactory="org.jboss.naming.remote.client.InitialContextFactory" 
    jndiProviderUrl="http-remoting://127.0.0.1:8085" 
    connectionFactoryJndiName="jms/RemoteConnectionFactor" 
    jndiDestinations="true" forceJndiDestinations="true" 
    disableTemporaryReplyToDestinations="true" 
    username="inara" 
    password="whitefall" 
    doc:name="JMS" validateConnections="true"> 
</jms:connector> 

<flow name="jbossconnectiontestFlow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" 
     path="/jbosstest" doc:name="HTTP" /> 

    <set-payload value="Shiny!" doc:name="Set Payload" /> 

    <logger message="1. payload: #[payload]" level="INFO" doc:name="Logger" /> 
    <jms:outbound-endpoint exchange-pattern="request-response" queue="jms/queue/CoordReceive" connector-ref="Wildfly9JMSConnector" doc:name="JMS"> 
     <jms:transaction action="BEGIN_OR_JOIN"/> 
    </jms:outbound-endpoint> 
    <set-payload value="JMS message sent." doc:name="Set Payload"/> 
    <logger message="2. payload: #[payload]" level="INFO" doc:name="Logger"/> 

    <catch-exception-strategy doc:name="Catch Emdxception Strategy"> 
     <logger level="INFO" doc:name="Logger" /> 
    </catch-exception-strategy> 
</flow> 

Частичная трассировка стеки:

ERROR 2015-10-20 16:53:01,948 [main] org.mule.retry.notifiers.ConnectNotifier: Failed to connect/reconnect: JmsConnector 
{ 
    name=Wildfly9JMSConnector 
    lifecycle=initialise 
    this=6540cf1d 
    numberOfConcurrentTransactedReceivers=4 
    createMultipleTransactedReceivers=true 
    connected=false 
    supportedProtocols=[jms] 
    serviceOverrides=<none> 
} 
. Root Exception was: HQ119031: Unable to validate user: null. Type: class org.hornetq.api.core.HornetQSecurityException 
ERROR 2015-10-20 16:53:01,956 [main] org.mule.module.launcher.application.DefaultMuleApplication: null 
org.hornetq.api.core.HornetQSecurityException: HQ119031: Unable to validate user: null 

Я ожидаю, что вы хотите получить больше информации, больше деталей, но я не хочу, чтобы затопить вас неверные данные - так просите, и вы получите.

Обновление: К сожалению, предложения @ RyanCarter не были «это» или, возможно, просто «недостаточно». Если я отключу функцию «с поддержкой безопасности», она будет успешно развернута, но сбой при попытке отправить сообщение:

В верхней части отчетов о трассировке стека «javax.jms.JMSException: нет очереди с именем JMS/очередь/CoordReceive». Я сейчас выясняю, что происходит - я знаю, что существует очередь, потому что работает Java-программа. К Google!

+0

На данный момент у меня есть работа, а работа: вместо JMS Connector я использую компонент Java, а затем обрабатываю интерфейс Wildfly в Java. Я бы по-прежнему предпочел бы это по-другому, и именно поэтому это всего лишь комментарий, а не самостоятельный ответ. Чтобы быть ясным, этот вопрос по-прежнему открыт._ – KlaymenDK

+0

Кроме того, мне нужно обрабатывать входящие сообщения _from_ Wildfly, и для этого я не могу использовать работу Java. – KlaymenDK

ответ

0

Ага! Было несоответствие (в основном из-за непонимания с моей стороны) между пользовательскими конфигурациями в C:\wildfly\domain\application-users.properties и C:\wildfly\standalone\configuration\application-users.properties. Как только я настроил пользователей для консоли управления (в domain) , а также для очередей (в standalone), я был запущен.

1

Вот такой подход, который я использовал прежде, чтобы использовать JNDI с HornetQ в Jboss 7+. Установка имени пользователя и пароля в 2 местах. Один для подключения JNDI и один для аутентификации на уровне очереди.

<spring:bean id="jndiProviderProperties" class="org.springframework.beans.factory.config.MapFactoryBean"> 
    <spring:property name="sourceMap"> 
     <spring:map> 
     <spring:entry key="java.naming.security.principal" value="inara"/> 
     <spring:entry key="java.naming.security.credentials" value="whitefall"/> 
     </spring:map> 
    </spring:property> 
</spring:bean> 

<jms:connector name="jms-connector" jndiInitialFactory="org.jboss.naming.remote.client.InitialContextFactory" 
    jndiProviderUrl="remote://localhost:4447" 
    connectionFactoryJndiName="jms/RemoteConnectionFactory" jndiDestinations="false" 
    forceJndiDestinations="false" createMultipleTransactedReceivers="true" username="inara" password="whitefall" 
    numberOfConcurrentTransactedReceivers="10" disableTemporaryReplyToDestinations="true" jndiProviderProperties-ref="jndiProviderProperties"> 
</jms:connector> 
+0

Wohoo! В первый раз мой код успешно развертывается! Спасибо тебе за это! ... но, увы, теперь я получаю другие ошибки, когда я фактически запускаю поток и отправляю сообщение. Должен ли я поставить это на новый вопрос? Сначала я сделаю некоторые исследования. – KlaymenDK

+0

О, черт побери, как-то мне удалось установить «с поддержкой безопасности» на «false». Когда я включил его, старая ошибка снова вернется. В конце концов, это было не так, или достаточно.(Извините за повторное открытие ответа.) – KlaymenDK

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

  • Нет связанных вопросов^_^