MQSeries Docker 映像:无需身份验证的队列管理器

cdo*_*don 5 websphere jms docker ibm-mq

如何使队列管理器(默认存在于 docker 映像中)接受任何无需身份验证的连接?

我浏览了 Web 控制台 (:9443/ibmmq/console/) 中的所有选项,并尝试了任何我认为可能具有我想要的效果的选项,但找不到它。

TIA 和 BR,克里斯蒂安

编辑:这是我用来连接的代码

JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = ff.createConnectionFactory();

// Set the properties

cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, HOST);
cf.setIntProperty(WMQConstants.WMQ_PORT, PORT);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, CHANNEL);
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, QMGR);
cf.setStringProperty(WMQConstants.WMQ_APPLICATIONNAME, "JmsPutGet (JMS)");
//cf.setBooleanProperty(WMQConstants.USER_AUTHENTICATION_MQCSP, true);
//cf.setStringProperty(WMQConstants.USERID, APP_USER);
//cf.setStringProperty(WMQConstants.PASSWORD, APP_PASSWORD);

// Create JMS objects
context = cf.createContext();
Run Code Online (Sandbox Code Playgroud)

- - - - - 编辑 - - - - - -

之后的错误日志

  • 删除 QM 的“连接身份验证”
  • 设置频道授权 记录(在扩展下)为“作为队列管理器”

    AMQ9557E: Queue Manager User ID initialization failed for '[my OS user]'. 
EXPLANATION:
The call to initialize the User ID '[my OS user]' failed with CompCode 2 and
Reason 2035. If an MQCSP block was used, the User ID in the MQCSP block was ''.
ACTION:
Correct the error and try again.
Run Code Online (Sandbox Code Playgroud)

Rob*_*ker 2

如果您尝试禁用 MQ 连接身份验证功能,以便不对用户 ID 和密码进行身份验证,则可以通过在 runmqsc 中对队列管理器执行以下 MQSC 命令来实现此目的。 ALTER QMGR CONNAUTH(' ') REFRESH SECURITY(*) TYPE(CONAUTH)

或者在 MQ Web 控制台中:

  1. 在队列管理器小部件中选择您的队列管理器
  2. 单击属性
  3. 转到扩展部分并向下滚动
  4. 将“连接身份验证”属性设置为空白值
  5. 单击保存然后关闭
  6. 在队列管理器小部件中选择您的队列管理器
  7. 单击...并从下拉列表中选择刷新安全性
  8. “选择连接验证”
  9. 添加小部件:“频道认证记录”
  10. 在此小部件中,选择您的频道条目,单击“扩展”下的属性,将客户端连接设置为“作为队列管理器”

如果需要的话:

在“队列管理器”小部件中选择您的 QM,打开属性 (...)、“刷新安全性...”、“连接身份验证”。确保在 MCA 下的通道属性中设置默认用户名(在标准 docker 安装中,即“app”)(如 @JoshMc 所建议)