使用安全出口

在这种情况下,可以使用提供的名为SampleSecurityExit,安全退出示例,这样就只允许使用以MQIPT.字符开头的通道名的客户端连接。

开始之前

  • 在开始使用此方案之前,请确保您已完成 "开始使用IBM MQInternet Pass-Thru "中列出的前提任务。
  • 安装 JavaJava 8.0 JDK。
  • Java bin 子目录添加到 PATH 环境变量。

关于本任务

此场景中使用的样本出口为 SampleSecurityExit.javaMQIPT 随附于 MQIPT 安装目录的 samples/exits 子目录中。

如果使用建议的服务器连接通道名称 MQIPT.CONN.CHANNEL (在其中大多数场景中使用) ,那么将允许客户机连接完成,并且可以将 IBM MQ 消息放入队列中。

要证明安全出口正在按预期工作,请使用不以字符 MQIPT. (例如, TEST.CONN.CHANNEL) 开头的任何名称定义另一个服务器连接通道,然后重试 amqsputc 命令,但已更改 MQSERVER 环境变量以使用新通道名称。 此时将拒绝连接,并且将返回 2059 (MQRC_Q_MGR_NOT_AVAILABLE) 错误。

图 1。 安全出口网络图
请参阅文本。

此图显示从 IBM MQ 客户机 (在端口 1415 上称为 client1.company1.com ) 到 MQIPTIBM MQ 服务器 (在端口 1414 上称为 server1.company2.com ) 的连接流。

过程

要使用安全出口,请完成以下步骤:

  1. MQIPT 计算机上:
    1. 通过在命令提示符中发出以下命令,在 MQIPT 主目录中创建名为 exits 的目录:
      md C:\mqiptHome\exits
    2. 输入以下命令以编译出口。 如果未更改出口代码,那么不必执行此操作,因为 MQIPT随附了已编译的样本出口。
      C:
      cd \mqipt\samples\exits
      javac -classpath C:\mqipt\lib\com.ibm.mq.ipt.jar;. SampleSecurityExit.java
    3. 输入以下命令以将已编译的出口类文件 SampleSecurityExit.class 复制到 C:\mqiptHome\exits 目录:
      copy C:\mqipt\samples\exits\SampleSecurityExit.class C:\mqiptHome\exits
    4. 编辑 mqipt.conf 并添加路由定义:
      [route]
      ListenerPort=1415
      Destination=server1.company2.com
      DestinationPort=1414
      SecurityExit=true
      SecurityExitName=SampleSecurityExit
    5. 打开命令提示符并启动 MQIPT:
      C:\mqipt\bin\mqipt C:\mqiptHome -n ipt1
      其中 C:\mqiptHome 指示 MQIPT 配置文件 mqipt.conf的位置, ipt1 是要提供给 MQIPT实例的名称。
      以下消息指示 MQIPT 已成功启动:
      5724-H72 (C) Copyright IBM Corp. 2000, 2026. All Rights Reserved
      MQCPI001 IBM MQ Internet Pass-Thru V9.4.0.0 starting
      MQCPI004 Reading configuration information from mqipt.conf
      MQCPI152 MQIPT name is ipt1
      MQCPI021 Password checking has been enabled on the command port
      MQCPI011 The path C:\mqiptHome\logs will be used to store the log files
      MQCPI006 Route 1415 has started and will forward messages to :
      MQCPI034 ....server1.company2.com(1414)
      MQCPI035 ....using MQ protocol
      MQCPI079 ....using security exit C:\mqiptHome\exits\SampleSecurityExit
      MQCPI080 ......and timeout of 30 seconds
      MQCPI078 Route 1415 ready for connection requests
  2. IBM MQ 客户机系统上的命令提示符处,输入以下命令:
    1. 设置 MQSERVER 环境变量:
      SET MQSERVER=MQIPT.CONN.CHANNEL/tcp/10.9.1.2(1415)
    2. 放置消息:
      amqsputc MQIPT.LOCAL.QUEUE MQIPT.QM1
      Hello world
      输入消息字符串之后,按 Enter 键两次。
    3. 获取消息:
      amqsgetc MQIPT.LOCAL.QUEUE MQIPT.QM1
      此时会返回消息“Hello world”。