如何使队列管理器(默认情况下存在于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.
答案 0 :(得分:1)
如果尝试禁用MQ连接身份验证功能,以便不对用户标识和密码进行身份验证,则可以通过针对队列管理器在runmqsc中执行以下MQSC命令来执行此操作。
ALTER QMGR CONNAUTH(' ')
REFRESH SECURITY(*) TYPE(CONAUTH)
或者在MQ Web控制台中:
...
,然后从下拉列表中选择“刷新安全性” 如果需要:
在“队列管理器”小部件中选择您的QM,打开属性(...),“刷新安全性...”,“连接身份验证”。 确保在MCA下的通道属性中设置了默认用户名(在标准docker安装中为“ app”)(建议@JoshMc)
答案 1 :(得分:0)
运行以下 mqsc 命令以禁用 IBM MQ 服务器中的通道身份验证:
ALTER QMGR CHLAUTH(DISABLED)
ALTER QMGR CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)