Kong Kubernetes Ingress响应转换器插件动态头配置求助
解决Kong Kubernetes Ingress Controller响应转换器动态请求头配置问题
原生response-transformer插件不支持直接使用请求头变量生成动态响应头,你需要改用response-transformer-advanced插件(增强版响应转换器),该插件支持从请求上下文中提取动态值。
正确配置示例
1. 定义response-transformer-advanced插件
apiVersion: configuration.konghq.com/v1 config: append: headers: # 使用request前缀指定从请求头中取值 - x-test-response-header:$(request.headers.Authorization) kind: KongPlugin metadata: name: response-transformer-advanced namespace: kong-test plugin: response-transformer-advanced
2. 在Ingress中关联插件
确保你的Ingress资源引用这个新插件(保留原request-transformer插件):
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: your-ingress-resource namespace: kong-test annotations: konghq.com/plugins: request-transformer,response-transformer-advanced spec: rules: - host: your-domain.com http: paths: - path: / pathType: Prefix backend: service: name: httpbin-service port: number: 80
验证效果
部署配置后,用curl测试:
curl -H "Authorization: eyJhbGciOiJSUzI1Ni..." https://your-domain.com/anything -v
查看响应头,x-test-response-header会正确携带请求中的Authorization值,而非静态字符串$(headers.Authorization)。
关键说明
- 原生
response-transformer仅支持静态响应头配置,不支持变量插值; response-transformer-advanced支持Kong的变量语法,取值时需要用request.headers.XXX明确指定从请求头中提取;- 若要使用之前通过request-transformer添加的
x-test-header,变量路径为$(request.headers.x-test-header)。
内容的提问来源于stack exchange,提问作者Devops
相关产品推荐
相关产品推荐

