HTTP 客户机发送出口 XWBAUTH

使用 XWBAUTH,您可以为目标服务器或服务提供者指定基本认证凭证(用户名和密码)。 XWBAUTH 按请求将其传递至 CICS®,以创建使用 HTTP 转发的 Authorization 头。

EXEC CICS WEB SEND(客户机)或 WEB CONVERSE 命令中指定 AUTHENTICATE(BASICAUTH) 时, 应用程序可提供用户名和密码。 如果未提供这些信息,那么将调用 XWBAUTH,这样会以另一种方法来指定这些凭证。 当在 USAGE(CLIENT) 的 URIMAP 资源定义中指定 AUTHENTICATE(BASIC) 时,将调用 XWBAUTH,除非应用程序在 EXEC CICS WEB SEND(客户机)或 WEB CONVERSE 命令中提供用户名和密码。 当 urimap 指定 AUTHENTICATE(BASIC) 时,也会调用 XWBAUTH。

用户名和密码通常特定于远程服务器环境,并且可能比 RACF® 系统使用的标准 8 个字符长。 用户名和密码字段的长度最多可以为 256 个字符。 不会验证这些字段的语法。

主机作为 UEPHOST 参数传递到用户出口程序,而路径作为 UEPPATH 参数传递。 可以选择将域作为 UEPREALM 参数传递。 在响应中,用户出口程序将用户名和密码作为 UEPUSNM 和 UEPPSWD 参数返回。 当对提供的用户标识和密码进行编码时, CICS 使用 EBCDIC 代码页。

以下样本出口程序在 CICS 样本库 SDFHSAMP 中提供:
  • DFH$WBPI
  • DFH$WBEX
  • DFH$WBX1
  • DFH$WBX2
  • DFH$WBGA,映射 DFH$WBPI、DFH$WBX1DFH$WBX2 和 DFH$WBEX 样本使用的全局工作区的副本。
有关客户机样本出口程序的更多信息,请参阅 HTTP 客户机样本出口程序 (DFH$WB*)。 有关设置 LDAP 概要文件的更多信息,请参阅 为 CICS 使用配置 LDAP

出口 XWBAUTH

调用时机
EXEC CICS WEB SEND 或 WEB CONVERSE 命令指定 AUTHENTICATE(BASICAUTH),但未指定 USERNAME 和 PASSWORD 时。
特定于出口的参数
UEPHOST ( CICS提供的输入)
字段的地址,该字段包含在用于连接的 WEB OPEN 命令的 HOST 选项中指定的主机名地址、IPv4 或 IPv6 地址。 当主机名保存在该字段中时,它将转换为小写字符。 在匹配主机名时,您的用户出口程序必须执行该转换。
UEPHOSTL ( CICS提供的输入)
字段的地址,该字段包含主机名的半字长度。
UEPPATH ( CICS提供的输入)
字段的地址,该字段包含 WEB SEND 或 WEB CONVERSE 命令的 PATH 选项中指定的路径的地址。 该路径允许采用大小写混合形式,即保留输入时的大小写。
UEPPATHL ( CICS提供的输入)
字段的地址,包含路径的半字长度。
UEPREALM ( CICS提供的输入)
字段的地址,该字段包含与目标关联的域名的地址(如果服务器在上一个 HTTP 401 响应中返回了域名)。
UEPREALML ( CICS提供的输入)
字段的地址,该字段包含域名的半字长度。
UEPAUTHT ( CICS提供的输入)
表示认证类型的 1 字节代码的地址。 此代码是二进制的 01,表示基本认证。
UEPUSNM(用户出口提供的输出)
全字字段的地址,包含访问 HTTP 服务器所需的用户名的地址。 预定义的地址和 64 字节区域由 CICS 创建以存储用户名。 您可以将用户名放在这个 64 字节区域中,而不更改 UEPUSNM 中的地址。 或者,您可以将用户名放在自己的区域中,用您的用户名地址替换 UEPUSNM 中的地址。 如果您创建自己的用户名区域,那么字段长度最大为 256 字节。
UEPUSNML ( CICS 提供的输入和用户出口提供的输出)
半字字段的地址,它最初包含 UEPUSNM 中提供的缓冲区地址的长度。 用户出口程序必须将该缓冲区的长度设置为 UEPUSNM 中提供的用户名长度。
UEPPSWD(用户出口提供的输出)
全字字段的地址,包含访问 HTTP 服务器所需的密码的地址。 预定义的地址和 100 字节区域由 CICS 创建,用于存储密码或密码短语。 您可以将密码放在这个 100 字节区域中,而不更改 UEPPSWD 中的地址。 或者,您可以将密码放在自己的区域中,用您的密码地址替换 UEPPSWD 中的地址。 如果您创建自己的密码区域,那么字段长度最大为 256 字节。
UEPPSWDL ( CICS 提供的输入和用户出口提供的输出)
半字字段的地址,它最初包含 UEPPSWD 中提供的缓冲区地址的长度。 用户出口程序必须将该缓冲区的长度设置为 UEPPSWD 中提供的实际密码长度。
UEPHOSTT ( CICS提供的输入)
表示 UEPHOST 参数中包含的主机类型的 1 字节代码的地址。

二进制 01 表示主机名,二进制 02 表示 IPv4 地址,而二进制 03 表示 IPv6 地址。

返回码
UERCNORM
出口已经成功地返回了用户名和密码。
UERCBYP
出口无法识别用户名和密码。 未发送 Authorization 头。
UERCERR
出口无法识别用户名和密码。 必须终止 WEB SEND(客户机)或 WEB CONVERSE 命令。
XPI 调用
可以使用所有 XPI 调用。
API 和 SPI 命令
可以使用所有 API 和 SPI 命令,但 EXEC CICS SHUTDOWNEXEC CICS XCTL除外。