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

时间:2018-12-07 13:06:13

标签: docker jms websphere 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();

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

之后的错误日志

  • 删除质量管理的“连接身份验证”
  • 设置频道身份验证。记录(已扩展)到“作为队列管理器”

    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.

2 个答案:

答案 0 :(得分:1)

如果尝试禁用MQ连接身份验证功能,以便不对用户标识和密码进行身份验证,则可以通过针对队列管理器在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)

答案 1 :(得分:0)

运行以下 mqsc 命令以禁用 IBM MQ 服务器中的通道身份验证:

ALTER QMGR CHLAUTH(DISABLED)
ALTER QMGR CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)