java - Websphere MQ 7.5 : User ID Access

标签 java spring authentication ibm-mq

我已经安装了 Websphere MQ 7.5 并编写了一个 Java 客户端来连接到队列。为了执行该任务,我创建了一个基于 SYSTEM.DEF.SVRCONN channel 的自定义连接到服务器 channel 。

首先,要阻止所有具有管理员权限的用户和所有 channel 的所有授权用户,我输入了这样的命令(runmqsc TEST_MANAGER):SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('nobody', * MQADMIN)。现在,我在 MQ Explorer 中看到了此限制(TEST_MANAGER -> channel -> channel 标识记录)。

之后,为了向我的测试用户(Java 客户端)提供访问权限,我输入了这样的命令:

SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS('*') MCAUSER('TestUser') .

最后,我在 Spring 的 UserCredentialsConnectionFactoryAdapter 中设置了用户名/密码对,其中用户名是 TestUser。

问题是我无法连接 2035 MQRC_NOT_AUTHORIZED 异常。如果我删除“nobody”/*MQADMIN 阻止规则,则一切正常(仅存在 TestUser 客户端规则的规则)。

最佳答案

SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS('*') MCAUSER('TestUser')

我认为您不理解这个命令。此命令表示所有连接到 channel “TEST_CHANNEL”的应用程序都将使用“TestUser”的用户 ID。

I've set the username/password pair in the Spring's UserCredentialsConnectionFactoryAdapter where the username is TestUser.

设置密码是没有意义的,因为 MQ 不执行身份验证。您需要购买第 3 方产品(即 MQAUSX)来处理身份验证。另外,您的 CHLAUTH 命令实际上会覆盖您在 Spring 应用程序中设置的任何 UserID。

The problem is I can't connect with the 2035 MQRC_NOT_AUTHORIZED exception. If I remove the 'nobody'/*MQADMIN blocking rule, everything works fine (only the rule for the TestUser client rule presents).

您是否使用 setmqaut 命令为用户 ID“TestUser”授予对队列管理器和队列的适当访问权限?

打开队列管理器的权限事件并查看 MQ 返回 2035 的确切原因。

关于java - Websphere MQ 7.5 : User ID Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786867/

相关文章:

java - 超微 IPMI KVM : remote connection without webbrowser

java - 升级到 Spring Boot 2.2.2.RELEASE + Thymeleaf 3.0.11.RELEASE,thymeleaf/layout 停止工作

java - 使用spring框架我们在哪里实现松耦合呢?

Php 登录,无法继续 session

ruby-on-rails - 如何在AJAX中优雅地处理devise的401状态?

php - 用于 API 的 Laravel 中间件身份验证

java - transient 如何在序列化 Java 中与 final 一起工作

java - Java中IF语句比较多个整数

java - Spring Data REST - collectionResourceRel 与路径

java - Java 和 C# 之间 double 精度的差异