如何将WSO2 API Manager 4.3的ApiKey传递给后端微集成器服务?
WSO2 APIM 4.3 传递ApiKey到后端微集成器的解决方案
核心说明
你修改的RemoveOAuthHeadersFromOutMessage配置仅控制OAuth相关头部(如Authorization)是否被移除,和ApiKey的传递无关。要把授权用的ApiKey传给后端微集成器,最可靠的方式是通过自定义中介序列实现,以下是具体步骤:
步骤1:进入API的中介序列配置
登录APIM管理控制台,找到需要配置的API,进入编辑页面后切换到「中介序列」标签,选择「入流」区域。
步骤2:添加自定义中介逻辑
根据你的ApiKey传递方式,选择对应的中介代码:
- 如果客户端通过
X-API-Key头部传递ApiKey,直接复制该头部到后端请求:
<header name="X-API-Key" action="set" value="$trp:X-API-Key"/>
- 如果客户端通过查询参数(如
api_key)传递ApiKey,先提取参数再转为头部:
<property name="apiKey" expression="$url:api_key"/> <header name="X-API-Key" action="set" value="$ctx:apiKey"/>
- 如果使用APIM生成的应用级ApiKey,可直接从APIM上下文提取验证后的ApiKey:
<property name="apiKey" expression="$ctx:api.ut.apiKey"/> <header name="X-API-Key" action="set" value="$ctx:apiKey"/>
步骤3:保存并生效
添加完中介代码后,保存API配置并重新发布,后续请求经过APIM时,ApiKey就会被传递到后端的微集成器服务中。
内容的提问来源于stack exchange,提问作者Radwa
相关产品推荐
相关产品推荐

