AWS API 网关自定义授权 header 区分大小写
AWS API Gateway Custom Authorization header case sensitivity
AWS API 网关提供 an option 通过 Lambda 函数使用自定义授权。在这种方法中,用户需要配置一个自定义的 header 名称(例如:Auuthorization 或 Auth)。此 header 值由网关提取并传递给 Lambda 事件。
但是,Gateway 正在搜索传入的 header 区分大小写。即,如果用户将 header 指定为 authorization 而不是 Authorization,网关 returns 401。为什么此搜索区分大小写当 http 协议声明 headers 可以不区分大小写时。
我怀疑您可能在“身份令牌源”字段中输入了 method.request.header.Authorization
,而不是 method.request.header.authorization
(见附图)。也许这不是 AWS 不遵循 header 标准的问题,而是它与您告诉它要查找的内容相匹配...
(来源:amazon.com)
想知道您是否可以像在 API 网关使用的其他 header request/response 匹配字段中那样使用不区分大小写的正则表达式。可能类似于 /(?i)authorization/
。 (纯属猜测)
另见:
是的,这是客户授权方的一个已知问题,也是 API 网关中的 header 映射功能。 Header 匹配区分大小写,如您所述,这违反了规范。我没有修复此问题的预计到达时间,但这是一个我们想要修复的已知问题。
编辑:现在应该已经解决了。自定义授权方 header 匹配不区分大小写。
AWS API 网关提供 an option 通过 Lambda 函数使用自定义授权。在这种方法中,用户需要配置一个自定义的 header 名称(例如:Auuthorization 或 Auth)。此 header 值由网关提取并传递给 Lambda 事件。
但是,Gateway 正在搜索传入的 header 区分大小写。即,如果用户将 header 指定为 authorization 而不是 Authorization,网关 returns 401。为什么此搜索区分大小写当 http 协议声明 headers 可以不区分大小写时。
我怀疑您可能在“身份令牌源”字段中输入了 method.request.header.Authorization
,而不是 method.request.header.authorization
(见附图)。也许这不是 AWS 不遵循 header 标准的问题,而是它与您告诉它要查找的内容相匹配...
(来源:amazon.com)
想知道您是否可以像在 API 网关使用的其他 header request/response 匹配字段中那样使用不区分大小写的正则表达式。可能类似于 /(?i)authorization/
。 (纯属猜测)
另见:
是的,这是客户授权方的一个已知问题,也是 API 网关中的 header 映射功能。 Header 匹配区分大小写,如您所述,这违反了规范。我没有修复此问题的预计到达时间,但这是一个我们想要修复的已知问题。
编辑:现在应该已经解决了。自定义授权方 header 匹配不区分大小写。