我正在尝试设置 Google API Gateway 以使用调用者在标头中发送的 API 密钥。
我的 api 配置 yaml 如下所示:
...
securityDefinitions:
api_key_header:
type: apiKey
name: key
in: header
api_key_query:
type: apiKey
name: key
in: query
paths:
/foo-header:
get:
summary: Test foo endpoint
operationId: testGet-header
x-google-backend:
address: "<backend address>"
protocol: h2
path_translation: APPEND_PATH_TO_ADDRESS
security:
- api_key_header: []
responses:
204:
description: A successful response
/foo-query:
get:
summary: Test foo endpoint
operationId: testGet-header
x-google-backend:
address: "<backend address>"
protocol: h2
path_translation: APPEND_PATH_TO_ADDRESS
security:
- api_key_query: []
responses:
204:
description: A successful response
如果没有通过标头或查询参数提供有效的 API 密钥,我希望这两个调用都失败/foo-header
并显示 401 状态。/foo-query
但实际上只是/foo-query
按预期行事。即使请求标头中未提供 API 密钥,请求也会传递到后端
。/foo-header
我的配置有问题,还是在请求标头中提供 API 密钥时 Google API Gateway 无法正常工作?