Поиск JNDI на удаленном сервере JBoss с использованием аутентифицированного пользователя на другом сервере JBoss - PullRequest
1 голос
/ 20 сентября 2019

Я работаю над простым веб-приложением для управления очередью JMS, которое переносится из WebLogic в JBoss EAP 7.1.Приложение используется для поиска / удаления / перемещения сообщений в различных очередях.Ранее приложение управления и управляемые им очереди (назовем его «сервер очередей») находились на одном сервере WebLogic.Теперь приложение управления и сервер очередей будут находиться в разных контейнерах, каждый из которых работает на сервере JBoss.Приложение управления и сервер очереди защищены с помощью модуля входа LDAPExtended.

Приложение управления получает ссылку на InitialContext сервера очереди и использует JNDI для получения QueueConnectionFactory, используя этот (отредактированный) код:

Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
env.put(Context.PROVIDER_URL, "remote://pams-pams-dev.ocpdev.aipo.gov.au:30746");
env.put(Context.URL_PKG_PREFIXES, "org.jboss.as.naming.interfaces");
env.put(Context.SECURITY_PRINCIPAL, "username");
env.put(Context.SECURITY_CREDENTIALS, "password");
InitialContext context = new InitialContext(env);
QueueConnectionFactory connectionFactory = (QueueConnectionFactory) context.lookup("ConnectionFactory");

Зарегистрированный пользователь доступен в приложении управления в SessionContext, но я не знаю, как я могу передать информацию о пользователе на сервер очереди.Это возможно, или мне нужно как-то настроить это?

1 Ответ

1 голос
/ 24 сентября 2019

Насколько мне известно, вы не можете передавать (неявно или иначе) учетные данные пользователя от SessionContext до InitialContext для поиска JNDI.Кроме того, даже если бы вы могли передать учетные данные в InitialContext, вам все равно потенциально нужно было бы передать их методу createConnection в javax.jms.QueueConnectionFactory, который вы искали (поскольку JNDI и безопасность JMS не зависят друг от друга) иЯ тоже не верю, что это возможно.

...