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

时间:2019-03-20 05:05:40

标签: spring-boot jms ibm-mq

目前,我的spring boot 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-boot应用程序属性?

3 个答案:

答案 0 :(得分:2)

在MQ Spring Boot软件包的自述文件中对此进行了回答。

但是总而言之,MQ Spring Boot的默认配置设置为使用admin / passw0rd进行身份验证,以匹配MQ开发人员版的默认配置。要完全不进行身份验证,请在配置文件中将用户ID设置为空。

   ibm.mq.user=

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

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

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

上将进一步讨论认证策略。

答案 1 :(得分:1)

问题的一部分是您是否可以使用Spring Boot在yaml文件中设置WMQConstants.USER_AUTHENTICATION_MQCSP。您可以像这样轻松设置其他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

答案 2 :(得分:0)

关于您是否可以不使用密码进行连接的选择不是您可以从应用程序中做出的。队列管理器中的配置确定是否允许您不使用密码进入。

您在问题中提到的布尔属性不会打开/关闭密码用户,它会在两种发送密码的机制(V8之前的机制和MQCSP机制)之间进行切换。

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