Java WebSphere Application Server 7.0在连接到MQ时忽略Windows用户ID

Java WebSphere Application Server 7.0在连接到MQ时忽略Windows用户ID,java,windows,jakarta-ee,websphere,ibm-mq,Java,Windows,Jakarta Ee,Websphere,Ibm Mq,是否有人遇到过WAS在连接到Websphere MQ资源时不使用Windows用户名的问题?我们的开发人员邮箱过去从未遇到过这个问题,他们能够通过MQ发送用户名进行授权。但是我们有一个新的开发人员机器,它似乎没有发送用户名,因此无法连接到MQ 我们尝试使用DefaultPrincipalMapping为QCF指定J2C身份验证别名,但没有成功 解决方案:发现问题在于服务器是作为Windows服务安装和运行的。当我们创建一个由用户运行而不是作为服务运行的新服务器配置文件时,它在连接到MQ时使用了W

是否有人遇到过WAS在连接到Websphere MQ资源时不使用Windows用户名的问题?我们的开发人员邮箱过去从未遇到过这个问题,他们能够通过MQ发送用户名进行授权。但是我们有一个新的开发人员机器,它似乎没有发送用户名,因此无法连接到MQ

我们尝试使用DefaultPrincipalMapping为QCF指定J2C身份验证别名,但没有成功


解决方案:发现问题在于服务器是作为Windows服务安装和运行的。当我们创建一个由用户运行而不是作为服务运行的新服务器配置文件时,它在连接到MQ时使用了Windows用户名。

我怀疑问题实际上可能与您描述的相反。在旧版本的WAS中,如果保留为空,WAS将发送一个空白ID。WebSphere MQ将没有值传递给对象权限管理器,因此通道将在消息通道代理的进程权限下运行,该进程始终是管理性的。因此,旧版本的通常带有管理权限,尽管这一点并未得到广泛认可。您可以通过查看正在运行的通道的状态并查看MCAUSER字段是否为空来验证这一点

较新版本的WAS现在更努力地查找要发送到WMQ的ID(如果配置面板为空)。因此,新安装和现有安装的升级通常无法使用以前工作的相同通道授权给WMQ

所有这些中有趣的部分是,这是一个问题的唯一方式是如果QMgr在MCAUSER通道属性上有一个空值。如果QMgr有一个空MCAUSER,并且在连接时没有出口设置MCAUSER,则通道允许管理访问。如果通道没有设置SSLPEER的SSL或用于验证连接的出口,则匿名用户可以使用该管理访问。为什么这是一个问题?因为WebSphereMQ能够根据消息的到达来启动OS命令。这意味着任何具有WMQ管理员权限的用户都可以远程执行任意OS命令,作为软件的一项功能。因此,如果要对流经网络的消息承担任何责任,则必须锁定此功能,即使来自合法应用程序

您的应用程序能够显示一个成功的ID和另一个失败的ID,这一事实似乎表明QMgr允许管理访问,我敢打赌,这样做是为了匿名连接。哦!修复QMgr的安全性比通过在WAS中设置“正确”ID来修复连接问题要好得多。有关这方面的更多信息,请参阅IMPACT会议的演示