没有用户身份验证的 SpringBoot IBM MQ

SpringBoot IBM MQ without user authentication

目前我的 spring 引导 application.yaml 中有以下属性。

ibm:
   mq:
      queueManager: <queue-manager>
      channel: <channel>
      connName: <host>(<port>)
      queue: <queue-name>
      user: <user>
      password: <password>

我想不用密码连接,为此我必须设置 jmsConnectionFactory.setBooleanProperty(WMQConstants.USER_AUTHENTICATION_MQCSP, false); 属性。

我是否可以通过将参数传递给 connName 来在 application.yaml 中指定此 属性?

在哪里可以找到与 IBM MQ 相关的所有预定义密钥 spring- 启动应用程序属性?

您无法从应用程序中选择是否可以在没有密码的情况下连接。队列管理器中的配置决定是否允许您在没有密码的情况下进入。

你在问题中提到的布尔值 属性 不会 on/off 密码的用户,它会在两种可能的密码发送机制之间切换,V8 之前的机制,以及MQCSP机制。

如果您不想发送用户名和密码,请不要设置用户名和密码。

这在 MQ Spring 引导包的自述文件中得到了回答。

但总而言之,MQ Spring 引导默认配置设置为使用 admin/passw0rd 进行身份验证,以匹配 MQ Developer Edition 的默认配置。要完全不进行身份验证,请在配置文件中将用户标识设置为空。

   ibm.mq.user=

要将未经身份验证的连接作为特定 ID 强制连接到 运行,则可以应用 CHLAUTH 规则。

该自述文件中列出了完整的可用配置参数集及其默认值。某些 IDE 也可以在编辑配置文件时从 jar 文件中获取它。

https://github.com/ibm-messaging/mq-jms-spring/issues/18

进一步讨论了身份验证策略

你的问题的一部分是你是否可以在你的 yaml 文件中设置 WMQConstants.USER_AUTHENTICATION_MQCSP spring 引导。您可以像这样轻松设置其他 mq 属性:

ibm:
  mq:
    conn-name: "localhost(1414)"
    queue-manager: "TEST"
    channel: "TEST"
    user: "TEST"
    password: ""
    additional-properties:
      XMSC_WMQ_QMGR_CCSID: 1208
      XMSC_WMQ_CONNECTION_MODE: 1
      XMSC_USER_AUTHENTICATION_MQCSP: false