You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用Kong request-transformer将URI变量替换为请求头值?

问题解答

Kong官方的request-transformer插件原生不支持直接将URI模板中的占位符(比如{realm_name})替换为请求头携带的值,不过可以通过Kong的Pre-function插件(Serverless Functions)来实现这个动态替换需求,具体方案如下:

用Pre-function插件实现动态URI重写

创建一个Pre-function插件,通过Lua代码读取请求头值并重构目标URI:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: rewrite-uri-from-header
  namespace: keycloak
config:
  functions:
    - |
      -- 读取请求头X_realm_name的值
      local realm_name = kong.request.get_header("X_realm_name")
      -- 如果头存在,重写服务请求路径
      if realm_name then
        kong.service.request.set_path("/admin/realms/" .. realm_name .. "/users")
      end
plugin: pre-function

把这个插件绑定到对应的路由或服务上即可。如果需要处理请求头不存在的情况,可以添加默认值逻辑:

local realm_name = kong.request.get_header("X_realm_name") or "default_realm"
kong.service.request.set_path("/admin/realms/" .. realm_name .. "/users")

补充说明

  • 若执意使用request-transformer插件,只能提前构造好完整的目标URI,无法实现从请求头动态取值替换占位符的效果,不符合你的需求。
  • Pre-function插件支持自定义Lua逻辑,能灵活应对各种动态路由场景,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者Sinan NourEddine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 23:57:44