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 中提供:
有关客户机样本出口程序的更多信息,请参阅 HTTP 客户机样本出口程序 (DFH$WB*)。 有关设置 LDAP 概要文件的更多信息,请参阅 为 CICS 使用配置 LDAP- DFH$WBPI
- DFH$WBEX
- DFH$WBX1
- DFH$WBX2
- DFH$WBGA,映射 DFH$WBPI、DFH$WBX1、DFH$WBX2 和 DFH$WBEX 样本使用的全局工作区的副本。
出口 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 SHUTDOWN 和 EXEC CICS XCTL除外。