我如何才能使队列管理器(默认情况下存在于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();

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

之后的错误日志
  • 删除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.
    

    最佳答案

    如果您尝试禁用MQ连接认证功能,以便不对用户标识和密码进行认证,则可以通过针对队列管理器在runmqsc中执行以下MQSC命令来执行此操作。ALTER QMGR CONNAUTH(' ')REFRESH SECURITY(*) TYPE(CONAUTH)
    或者在MQ Web控制台中:

  • 在“队列管理器”窗口小部件中选择您的队列管理器
  • 单击属性
  • 转到“扩展”部分并向下滚动
  • 将“连接身份验证”属性设置为空白值
  • 单击保存并关闭
  • 在队列管理器中选择您的队列管理器widgit
  • 单击...,然后从下拉
  • 中选择刷新安全性
  • “选择连接身份验证”
  • 添加小部件:“通道身份验证记录”
  • 在此小部件中,选择您的 channel 的条目,单击“扩展”下的属性,将客户端连接设置为“作为队列管理器”

  • 如果需要:

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

    10-01 13:33