2014-01-15 1 views
0

Мне нужно получить доступ к безопасной очереди MQ из автономного приложения Java.Как получить доступ к безопасной очереди MQ из автономного приложения Java

Какие различные механизмы доступны для этого? Где я могу найти информацию о различных способах ее достижения? Любые фрагменты кода или ссылки на документы приветствуются.

Спасибо

UPDATE

Спасибо Шаши.

Я не слишком хорошо знаком с MQ. Я на стороне Java, поэтому я попросил нашего администратора MQ помочь мне объяснить. Это то, что они сказали мне, у нас есть.

We have a “secure” qmgr MGR1. We are attempting to secure all of the objects. 

    We use two (or more) types of security. 

    Object Level security and Channel Authorization records. 

    Using Channel Authorization records, we can control who can use a channel 
    from where (userid/IP Address) – block everyone else. 

    Object level security, controls who can access a specific object and what 
    they are allowed to do: 

    UID1 has connect authority to the qmgr. Read authority on PV.** queues. 

Это то, о чем вы спрашиваете?

+0

Можете ли вы описать, что вы имеете в виду безопасный MQ? – Shashi

+0

@Shashi - Спасибо. Я обновил вопрос с подробностями – adbdkb

ответ

0

OK. Понял. Все администраторы работают

1) Allow you connect to queue manager 
2) Allow you put/get messages to queue(s) 

С точки зрения приложения ничего не требуется для обеспечения безопасности. Приложение должно писать код для подключения, отправки/получения сообщений. Существует множество образцов, поставляемых с MQ. Их можно найти в папке Tools/wmqjava/samples на компьютере под управлением Windows. Есть образцы Java и Java/JMS. Для начала вы можете посмотреть пример MQSample.java.

Редактировать

Пример кода для установки идентификатор_пользователя из приложения с помощью USER_ID_PROPERTY

Hashtable props = new Hashtable(); 
props.put(CMQC.HOST_NAME_PROPERTY, "mymq.server.com"); 
props.put(CMQC.PORT_PROPERTY, 1414); 
props.put(CMQC.CHANNEL_PROPERTY, "SYSTEM.DEF.SVRCONN"); 
props.put(CMQC.USER_ID_PROPERTY, "myusername";) 

MQQueueManager qMgr = new MQQueueManager(qManager, props); 
+0

Спасибо. Нужно ли мне устанавливать клиент MQ на окно Windows? Наш MQ работает на Linux. Будет ли код существовать в Linux, так что я могу попросить администраторов предоставить мне доступ к каталогу? Кроме того, я могу сделать JMS с незащищенной очередью. Будут ли образцы иметь код для доступа к защищенной очереди? – adbdkb

+0

В коде нет ничего конкретного. Вам нужно установить клиент MQ на окно. Образцы охватывают целый ряд языков, включая SSL. Из вашего ответа qmgr имеет только базовую безопасность и не использует никаких SSL или пользовательских выходов канала, которые бросают вызов для аутентификации пользователя/пароля. Просто убедитесь, что любой канал SVRCONN/CLNTCONN, который вы используете для подключения к qmgr, имеет U1D1 в качестве MCAUSER. – Umapathy

+0

Спасибо. Я работал с администраторами MQ. Они устанавливают безопасность на канале/очереди на основе IP-адреса, потому что когда я сделал вызов с использованием автономного приложения, он не отправил мой идентификатор пользователя в качестве пользователя, который вызвал процесс java. Есть ли способ отправить Id из моего приложения, чтобы они могли сделать wotk безопасности с идентификатором, вызывающим вызов, вместо того, чтобы позволить чему-либо из данного IP-адреса иметь доступ к объекту? – adbdkb

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