【发布时间】:2020-01-21 02:49:46
【问题描述】:
我正在开发一个简单的 JMS 队列管理 Web 应用程序,该应用程序正在从 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 的管理应用程序中可用,但我不知道如何将用户详细信息传递给队列服务器。这可能吗,还是我需要其他一些方法来设置它?
【问题讨论】: