У меня есть клиент C для подключения к IBM MQ, и я ввожу ID пользователя и пароль в MQCSP следующим образом:
MQCNO Connect_options = {MQCNO_DEFAULT};
MQCSP csp = {MQCSP_DEFAULT};
Connect_options.SecurityParmsPtr = &csp;
Connect_options.Version = MQCNO_VERSION_5;
csp.AuthenticationType = MQCSP_AUTH_USER_ID_AND_PWD;
csp.CSPUserIdPtr = "user2";
csp.CSPUserIdLength = strlen("user2");
csp.CSPPasswordPtr = "password";
csp.CSPPasswordLength = strlen((char*)"password");
, а затем вызываю MQCONNX () для подключения к серверу MQ, запустите клиентс пользователем «user1», но сервер всегда аутентифицирует пользователя, на котором запущено приложение «user1».
Я настроил MQ-сервер следующим образом:
ALTER QMGR CONNAUTH(SYSTEM.DEFAULT.AUTHINFO.IDPWOS)
DEFINE AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) +
AUTHTYPE(IDPWOS) +
FAILDLAY(10) +
CHCKLOCL(OPTIONAL) +
CHCKCLNT(REQUIRED) +
ADOPTCTX(YES)
REFRESH SECURITY TYPE(CONNAUTH)
define qlocal(HDPARLOCALQUEUE01) replace
define channel(HDPARCHANNEL) +
chltype(SVRCONN) +
trptype(TCP) +
MCAUSER(' ')
alter channel(HDPARCHANNEL) +
chltype(SVRCONN) +
MCAUSER(' ')
ALTER QMGR CHLAUTH(DISABLED)
Как получитьMQ-сервер аутентифицирует пользователя, предоставленного в MQCSP?
Я добавил «ChlauthEarlyAdopt = Y» в qm.ini
С уважением,