gpt4 book ai didi

java - 使用 Java 类的 WebSphere MQ 窗口到窗口身份验证

转载 作者:行者123 更新时间:2023-12-01 05:49:50 25 4
gpt4 key购买 nike

使用 WebSphere MQ 版本 6.x 从 Vista 工作站连接到 Windows Server 2003,客户端版本为 7.0.1.3。我可以编写一个非常简单的 .Net 程序来使用 AMQMDNET 接口(interface)连接到 channel 和队列管理器,但是当使用 Java 和 com.ibm.mq 类执行相同操作时,我得到 2537 channel 不可用。线路跟踪显示 .Net 代码提供了用户 SID 以及用户 ID,但 Java 调用的代码未填写 SID。我怀疑我们的管理员已在 channel 上使用属性 NTSIDsRequired 设置 channel (等待管理员的回复)。

有人知道为什么 Java 接口(interface)默认不发送 SID 吗?我找不到用于强制此行为的参数。

编辑

最佳答案

I suspect our admins have set the channel up with the property NTSIDsRequired on the channel...

事实上,如果这是原因的话,情况可能恰恰相反。使用默认配置时,队列管理器将使用 SID(如果提供),否则将使用帐户名的字符串表示形式。如果它使用字符串表示并且失败,您将得到 2035 Not Authorized错误。另一方面,如果 NTSIDsRequired设置并且在没有 SID 的情况下进行连接尝试,导致连接被拒绝。至少在 QMgr 端,预计会出现 2035 错误,但客户端完全有可能会看到 2537 错误。

请注意NTSIDsRequired不是 channel 设置。当发出连接请求时,它确实适用,但该行为在对象权限管理器 (OAM) 上起作用,并且针对代表连接的客户端进行的每一次 OAM 检查(包括 OPEN)执行。 , CLOSE ,和SUBSCRIBE 。它完全在队列管理器端运行。

如果 channel 有拒绝连接的导出,通常会看到 2537。例如BlockIP2 exit如果用户 ID 为空、包含管理帐户或源自未经授权的 IP 地址(因此得名),则可以设置为拒绝连接。或者, channel 可能已达到最大实例数或已停止,但这些都不符合您的描述。不过,退出 channel 确实有可能。

两种可能性是1) NTSIDsRequired 设置,并且 QMgr 拒绝连接,因为 SID 不存在;或 2) channel 导出拒绝连接。由于安全错误消息在客户端故意稀疏,因此诊断这些消息需要查看队列管理器的错误日志或队列管理器服务器上的 Windows 事件日志中的消息。如果安装了导出,则可能还需要检查导出日志。如果这是由于 NTSIDsRequired并且在队列管理器上启用了授权事件,我希望也会生成授权事件。如果是由于退出或 channel 实例限制之一导致的,则会出现日志条目。

编辑:
做了更多研究,我发现an Infocenter page声明总是传递 SID,并且不区分 Windows 客户端的类型。基于此,您看到的行为与记录的行为相反,因此您应该能够在其上打开 PMR。该页面似乎是从 the same page in the v6 Infocenter 逐字复制的。因此版本不匹配不会出现问题。

关于java - 使用 Java 类的 WebSphere MQ 窗口到窗口身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com