当前位置: 首页 > 知识库问答 >
问题:

从WAS连接到MQ时的JMSWMQ2013

屠嘉
2023-03-14

我正在尝试从 WebSphere 应用程序服务器 7 创建 JMS 连接,但不断收到 JMSWMQ2013(MQ 原因码为 2035)。显然,这是一个身份验证问题,我可以看到许多其他类似的报告,所以我对一般问题有一个粗略的了解。

我正在等待我们的运营团队对频道的准确配置的反馈,但是,同时我有一个观察结果非常令人困惑。如果我使用WebSphere的JAAS身份验证来提供userid,那么我总是会得到< code>JMSWMQ2013错误。但是,如果显式地将相同的userid传递给JMS队列连接工厂对< code > createQueueConnection()的调用,那么我不会得到验证错误。

说实话,我本来希望这两种技术都能保持一致。使用 JAAS 为 JMS 队列连接工厂提供凭证时,我是否遗漏了一些微妙之处?

编辑:我在WAS using < code > * = info:JMS API = all:JMS server = all:Messaging = all:JMS _ WASTraceAdapter = all:com . IBM . MQ . * = all:JMS API = all 中打开了JMS跟踪,并逐行比较了输出。

当使用 JAAS 时,我可以看到在 JmsXA 队列连接的简单内部深处,它实际上正在调用 WMQ 连接.getProcessUserId(),它返回我的 WAS 实例正在运行的用户 ID(这绝对不是在通道的 MCAUSER 中定义的用户)。

这一切都很奇怪...它似乎根本没有拾取 JAAS 身份验证条目。我的 QCF 肯定使用客户端传输,其映射配置别名为默认原则映射,但由于某种原因,它仍然使用进程的用户标识而不是 JAAS 用户标识。

谢了。克雷格(m.)

共有2个答案

高勇
2023-03-14

2035肯定是认证问题。试图连接的用户id没有访问MQ资源的权限。

关于,您的以下评论:

如果我使用 WebSphere 的 JAAS 认证来提供用户标识,那么我总是收到 JMSWMQ2013 错误。但是,如果显式地将相同的用户标识传递给 JMS 队列连接工厂的调用以创建队列连接 (),则我不会收到身份验证错误。

你的期望是正确的。这两种技术的行为方式应相同。如果用户ID具有访问权限,则两者都应该连接,如果没有,则两者都应该抛出错误。

你的问题的唯一解释可能是,你不知不觉地在这些应用程序中发送不同的用户id。

例如,您的用户标识是“User123”,并且它有权访问 MQ 资源。

然而,可能是WebSphere的JAAS认证发送域和用户id。比方说,您的用户id在“Developer”域中,那么发送的用户id是“Developer\User123”,它可能没有访问资源的权限。

马涵蓄
2023-03-14

以操作系统管理员身份运行 IBM WebSphere MQ 资源管理器,在队列管理器属性(菜单链接/连接或类似名称)中禁用通道的标识记录。

 类似资料:
  • 我一直有这样一个错误(异常)com.ibm.msg.client.jms.detailedJMSSecurityException:JMSWMQ2013:为连接模式为“Client”、主机名为“LocalHost(1414)”的队列管理器“QM1”提供的身份验证安全性无效。检查所连接的等待队列管理器中提供的用户名和密码是否正确。WebSphere MQ调用失败,完成代码为'2'('mqcc_fai

  • 目前,由于以下问题,我在连接到服务器时遇到了问题: 当我试图连接到服务器时,它返回了一个错误: 通过WireShark进行更深入的分析,我发现客户机试图使用SSL v2连接到服务器,而服务器只能接受SSL V3,因此拒绝连接。

  • 你知道我会错过什么吗?我不知道配置细节是否会有帮助,如果它会,我可以提供。 提前感谢!

  • 我正在尝试将我的Java web项目连接到Firebase,这样我就可以将数据存储在FireStore中。我正在使用Java管理SDK,遵循官方指南:FireBaseAdminSDK。不幸的是,在初始化FirebaseAp时,我遇到了异常: 现在,我读到这里和那里,它的问题与guava项目,建议使用不同版本的guava库。我试过从18开始的所有版本。 我甚至下载了google firebase s

  • 使用JNDI,我可以连接到ActiveMQ。但是当切换提供程序类时,它给了我以下异常。 Spring JNDI配置: 例外情况: null

  • 我试图通过TLS连接到使用JMS的IBM MQ。我将TLS_RSA_WITH_AES_256_CBC_SHA256设置为IBM MQ控制台通道上的SSL密码规范。 在连接工厂中,我执行以下操作: 我得到: 我不确定这个错误是否意味着握手失败(由于证书/密钥库配置错误)或其他原因。