2013-07-22 2 views
2

Я установил Websphere MQ 7.5 и написал Java-клиент для подключения к очереди. Для выполнения этой задачи I'ev создал настраиваемый канал подключения к серверу, который основан на канале SYSTEM.DEF.SVRCONN.Websphere MQ 7.5: Доступ к идентификатору пользователя

Во-первых, чтобы заблокировать всех пользователей с правами администратора и всеми авторизованными пользователями для всех каналов, я использую такую ​​команду (runmqsc TEST_MANAGER): SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('nobody', *MQADMIN). Теперь я вижу это ограничение в MQ Explorer (TEST_MANAGER -> Channels -> Channel Identification Records).

После этого, чтобы предоставить мой тестовый пользователь (Java-клиент) с доступом, я набрал такую ​​команду:

SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS('*') MCAUSER('TestUser') . 

Наконец, я установить имя пользователя/пароль пару в Спринга UserCredentialsConnectionFactoryAdapter, где имя пользователя - TestUser.

Проблема. Не могу соединиться с исключением 2035MQRC_NOT_AUTHORIZED. Если я удалю правило блокировки 'nobody'/* MQADMIN, все будет работать нормально (существует только правило для правила клиента TestUser).

ответ

2

SET CHLAUTH (TEST_CHANNEL) ТИП (ADDRESSMAP) АДРЕС ('*') MCAUSER ('TestUser')

Я не думаю, что вы понимаете эту команду. Эта команда говорит, что ВСЕ приложения, подключающиеся по каналу 'TEST_CHANNEL', будут использовать UserID 'TestUser'.

Я установил имя пользователя/пароль пары в UserCredentialsConnectionFactoryAdapter весной, где имя пользователя, является TestUser.

Установка пароля бессмысленна, поскольку MQ НЕ выполняет аутентификацию. Вам необходимо приобрести сторонний продукт (т. Е. MQAUSX) для обработки аутентификации. Кроме того, ваша команда CHLAUTH фактически отменяет любой пользовательский идентификатор, установленный в приложении Spring.

Проблема в том, что я не могу подключиться к исключению 2035 MQRC_NOT_AUTHORIZED. Если я удалю правило блокировки 'nobody'/* MQADMIN, все будет работать нормально (существует только правило для правила клиента TestUser).

Вы использовали команду setmqaut, чтобы дать UserID 'TestUser' соответствующий доступ к диспетчеру очереди и очереди?

Включите Authority Event менеджер очереди, и увидеть, почему именно MQ возвращается 2035

+0

Здравствуйте, Роджер. Спасибо за ответ. Есть несколько моментов, которые я не понимаю. Не могли бы вы прояснить их? (1). «Кроме того, ваша команда CHLAUTH фактически отменяет любой пользовательский идентификатор, установленный в приложении Spring». Я не видел этого в документации. Как именно этот процесс идет? (2). «Вы использовали команду setmqaut ...». Нет. Нужно ли, если я предоставляю механизм безопасности для канала? Конечно, это было бы более безопасно, но что, если я не буду обеспечивать безопасность очереди? (3). Msgstr "Включить событие управления менеджером очереди. Не могли бы вы предложить, как это сделать? – Dmitry

+0

Ну, есть ответ Т. Роба: http://stackoverflow.com/questions/9416522/websphere-mq-v7-1-security-user-credentials?rq=1, который немного уточняет первый ответ.Но что, если я не укажу идентификатор пользователя, будет ли WebSphere использовать этот идентификатор и передать его в механизмы безопасности очередей/очереди? – Dmitry

+1

Я также нашел интересную статью о setmqauth: http://patrikvarga.blogspot.ru/2012/11/ibm-mq-object-authorization-for-jms.html – Dmitry

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