2013-09-23 6 views
1

Я пытаюсь создать JMS-соединение из WebSphere App Server 7, но продолжаю получать JMSWMQ2013 (с кодом причины 2020 MQ). Ясно, что это проблема аутентификации, и я могу seemanyothersimilarreports поэтому у меня есть общее представление об общей проблеме.JMSWMQ2013 при подключении от WAS к MQ

Я ожидаю отзывов от нашей оперативной группы относительно точной конфигурации канала, однако, тем временем у меня есть одно замечание, которое довольно озадачивает. Если я использую аутентификацию JAAS в WebSphere для предоставления идентификатора пользователя, я всегда получаю ошибку JMSWMQ2013. , однако, если явно передать тот же userid для вызова фабрики очереди JMS на createQueueConnection(), тогда я не получу ошибку аутентификации.

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

Редактировать: Я включил трассировку JMS в WAS, используя *=info: JMSApi=all: JMSServer=all: Messaging=all: JMS_WASTraceAdapter=all: com.ibm.mq.*=all: jmsApi=all, и сравнил вывод по строкам.

При использовании JAAS я могу видеть, что глубоко в недрах JmsXAQueueConnectionImpl она фактически вызывающий WMQConnection.getProcessUserId(), который возвращает идентификатор пользователя, что мой WAS экземпляр работает под (который, безусловно, не пользователь, который определен в канале MCAUSER).

Все это довольно странно ... похоже, что он вообще не собирает запись аутентификации JAAS. Мой QCF определенно использует транспорт CLIENT с псевдонимом конфигурации сопоставления DefaultPrincipalMapping, но по какой-то причине он по-прежнему использует идентификатор пользователя процесса, а не идентификатор пользователя JAAS.

Спасибо. Craig

ответ

0

2035 - это проблема аутентификации. Идентификатор пользователя, пытающийся подключиться, не имеет доступа к ресурсу MQ.

Что касается, ваш комментарий ниже:

Если я использую проверку подлинности JAAS WebSphere, чтобы предоставить идентификатор пользователя, то я всегда получаю ошибку JMSWMQ2013. , однако, если явно передать тот же идентификатор пользователя для вызова фабрики очереди JMS на createQueueConnection(), тогда я не получу ошибку аутентификации.

Ваши надежды верны. Оба метода должны вести себя одинаково. Если идентификатор пользователя имеет доступ, то оба должны подключиться, если не тогда, то оба должны выбросить ошибку.

Только объяснение проблемы может заключаться в том, что вы неосознанно отправляете разные идентификаторы пользователей в этих приложениях.

Как и ваш идентификатор пользователя «Пользователь123», он имеет доступ к ресурсу MQ.

Однако, возможно, аутентификация JAAS в WebSphere отправляет домен вместе с идентификатором пользователя. Скажите, что ваш идентификатор пользователя находится в домене «Разработчик», тогда отправляется идентификатор пользователя «Разработчик \ Пользователь123», который может не иметь доступа к ресурсу.

+0

Спасибо, что подтвердили мое понимание. Основываясь на ваших мыслях о проверке идентификатора пользователя, я обновил свой первоначальный вопрос, чтобы предоставить немного больше информации. Похоже, учетные данные JAAS просто игнорируются. –

0

Запуск IBM WebSphere MQ Explorer в качестве администратора ОС. Отключить идентификационную запись канала в свойствах менеджера очереди (ссылка на соединение/соединение или что-то подобное).

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