HTTP 客户机开放出口 XWBOPEN

使用XWBOPEN,您可以指定代理服务器,用于 CICS® 作为 HTTP HTTP 请求。 您还可以将安全策略应用于为这些请求指定的主机名。

XWBOPEN 是在处理 EXEC CICS WEB OPEN 命令期间调用的,应用程序使用该命令来打开与服务器的连接。 处理 EXEC CICS INVOKE SERVICE 命令期间也会调用 XWBOPEN。

CICS 对于 作为 客户端发送的 请求,不要求使用代理服务器(或其他方式), 也不对这些请求应用任何安全策略。 CICS HTTP HTTP CICS 如果您的系统或组织需要这些设施,那么您必须设置这些设施。

EXEC CICS WEB OPEN 命令指示 CICS Web 域打开与服务器的连接。 在打开连接之前调用 XWBOPEN。 连接的主机名 (例如, www.example.com) 由 EXEC CICS WEB OPEN 命令上的 HOST 选项指定,作为 UEPHOST 参数传递给用户出口程序进行检查。 此时,您可以将用户出口程序用于两个目的:
  • 确定 HTTP 请求是否需要使用代理服务器,以及返回所需的任何代理服务器的名称。 如果需要代理服务器,则使用返回代码UERCPROX,并将代理服务器的名称返回到 CICS ,保存在UEPPROXY标识的缓冲区中,用于与服务器的连接。 如果不需要代理服务器,那么使用返回码 UERCNORM。
  • 对主机名应用安全策略。 返回码 UERCBARR 表明不允许对主机的访问,NOTAUTH 响应将返回给 WEB OPEN 命令。 应用程序员必须停止尝试打开该连接。 如果要对个别资源以及主机(或不是主机)应用安全策略,那么在 EXEC CICS WEB SEND 和 EXEC CICS WEB CONVERSE 命令中使用 XWBSNDO 用户出口以将安全策略应用到 URL 的路径部分。

XWBOPEN 用户出口不支持使用 EXEC CICS 命令。

样本程序 DFH$WBPI 和 DFH$WBEX 以及关联的副本 DFH$WBGA 向您显示如何在全局工作区中设置代理服务器信息或安全策略。 例如,如果来自 CICS 系统的所有请求都必须使用单个代理服务器,那么可以将代理服务器名称指定为初始化参数。 如果您使用很多代理服务器或者要对不同的主机名应用安全策略,那么可以装入或者构建一个将主机名与相应的代理服务器相匹配的,或者将它们标记为禁止的表,随后在处理 EXEC CICS WEB OPEN 命令期间可将该表用作查找表。 样本程序可以在程序列表后初始化 (PLTPI) 处理期间运行,也可以在您期望使用 EXEC CICS WEB OPEN 命令之前的任何位置运行。

出口 XWBOPEN

调用时机
处理 EXEC CICS WEB OPENEXEC CICS INVOKE SERVICE 命令期间。
特定于出口的参数
UEPHOST ( CICS提供的输入)
字段的地址,该字段包含在 WEB OPEN 命令的 HOST 选项中指定的主机名、IPv4 或 IPv6 地址
注: 在此字段中保存主机名时,会将其转换为小写。 在匹配主机名时,您的用户出口程序必须考虑该转换。
UEPHOSTL ( CICS提供的输入)
字段的地址,该字段包含主机名的半字长度。
UEPPROXY(用户出口提供的输出)
字段的地址,该字段包含指向代理服务器名称的地址。 代理服务器的名称必须采用 URL 格式。 在用户出口程序的输入中,该参数设置为字段的地址,该字段包含 2046 个字节区域的地址。 您可以在该区域中放置代理服务器名,并且不更改 UEPPROXY 中的地址。 或者,您可以在自己的区域中放置代理服务器名,并用包含您自己区域的地址的字段地址替换 UEPPROXY 中的地址。
UEPPROXYL(用户出口提供的输出)
字段的地址,该字段包含代理服务器名的半字长度。
UEPHOSTT ( CICS提供的输入)
表示 UEPHOST 参数中包含的主机类型的 1 字节代码的地址。
注: 二进制 01 指示主机名,二进制 02 指示 IPv4 地址,二进制 03 指示 IPv6 地址。
返回码
UERCNORM
对于该 HTTP 请求,不需要代理服务器,但不禁止主机名。
UERCPROX
对于该 HTTP 请求,需要代理服务器。 已将 UEPPROXY 设置为所需代理服务器的名称,并且已将 UEPPROXYL 设置为代理服务器名的长度。
UERCBARR
服务器的主机名被禁止。
UERCERR
处理出口时发生错误。
XPI 调用
可以使用所有 XPI 调用。
API 和 SPI 命令
不能使用 EXEC CICS 命令。