Как использовать аутентификацию Java JMS только на ConnectionFactory - PullRequest
0 голосов
/ 05 декабря 2018

В настоящее время я развертываю приложение REST для публикации сообщений в JMS, но для подключения через QueueConnectionFactory мы создаем контекст, но мы хотим использовать имя пользователя и пароль, которые были определены на уровне Webpshere и JMS, минуя аутентификациюв java-коде для createContext ().

Я не хочу передавать аутентификацию по java-коду после подключения пользователя и пароля к JMS.

Ниже приведен код, используемый:

    try {

        javax.naming.Context ctx = new InitialContext();

        QueueConnectionFactory jmsCF =  (QueueConnectionFactory) ctx.lookup("jms/bapssdEE/iwszQCF");

        Queue jmsQ = (Queue) ctx.lookup("jms/bapssdEE/iwszQ");

        // This part we are bypassing the authentication
        try (JMSContext context = jmsCF.createContext()) {


}

Когда программа запускается, мы получаем следующую запись в журнале:

[12/4/18 22: 00: 31: 170 BRST] 0000017d SibMessage W
[BAP_BUS: productionbackupNode01.server1-BAP_BUS] CWSII0212W: Шина BAP_BUS отказала анонимному пользователю в доступе к шине.[12/4/18 22: 00: 31: 249 BRST] 0000017d SystemOut O <<< --- метод AutosysExecProvider.putRequestInJMSQueue. </p>

Я установил имя пользователя и пароль в Webpshere с использованием WASпуть: Ресурсы \ JMS \ Фабрики соединений \ New

1 Ответ

0 голосов
/ 07 декабря 2018

Хорошие новости, проблема устранена после использования приведенных ниже аннотаций и изменения метода отправки сообщения через JMS:

@Resource(lookup = "jms/bapssdEE/autosysCF")
ConnectionFactory connectionFactory;

@Resource(lookup = "jms/bapssdEE/autosysQ")
Queue demoQueue;

private void putRequestInJMSQueue(String envelope) {
try (JMSContext context = connectionFactory.createContext();){
context.createProducer().send(demoQueue, envelope);

Также важно, что мы только что определили пользователя, созданного в Webpshere в поле Mapping-псевдоним конфигурации, а затем сообщения были отправлены в JMS без указания имени пользователя и пароля в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...