问题标签 [kong-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
authentication - Kong 使用 JWT 公开第 3 方下游 API 进行身份验证
有一个第 3 方 API,它需要对使用具有刷新机制的 JWT 令牌调用它的应用程序进行 API 身份验证。JWT 令牌用于应用程序(如客户端密钥和密钥),需要随每个请求一起发送,所有请求都相同。
在 Kong 中,可以向下游请求添加静态标头并获取响应。当令牌过期时,是否可以在kong级别生成JWT令牌并将其添加到下游请求中?
我尝试在 StackOverflow 和 kong 文档中查找,并发现了很多插件作为下游服务的身份验证层。我也了解 API 网关通常不负责向下游服务验证自己,我想知道在这种情况下是否有可能,这将帮助我们不要编写新应用程序只是为了生成令牌并为暂且。
session - Kong会话插件到期
我正在使用 Kong session 插件,目前我能够成功存储客户端的会话,但是,我正在尝试了解此到期是如何工作的。在会话配置中,我有cookie_lifetime: 60
和cookie_renew: 10
. 创建初始会话后,我可以通过 admin api 查看会话信息,http://localhost:8001/sessions
其中包含以下信息:
由于我session_renew
的设置为 10 秒,我确实看到它在创建新会话时ttl < 10
,它会一遍又一遍地这样做,但是,经过一段时间的空闲时间,当我回来检查会话信息时,会话被删除了。所以我想我不明白它是如何cookie_renew
工作的,因为根据我的理解,它应该在什么时候继续更新会话ttl < 10
,所以不确定是什么导致它删除会话。
目标是能够在会话即将过期之前发送客户端(或客户端可以拉取此信息),并允许客户端触摸会话以重新启动计时器或注销。
kong - Kong 找不到自定义插件
我正在尝试在 Kong 中加载自定义插件。我安装了插件,luarocks make
它给了我一个输出kong-circuit-breaker 1.0.4-1 is now installed in /usr/local (license: MIT)
。现在,如果我尝试重新启动我的 kong docker 容器,然后重新启动 kong,Kong 会成功运行,但未加载此插件。在被困在这里很长一段时间后,我开始设置我的 Kong 容器的 env 变量,KONG_PLUGINS=bundled,kong-circuit-breaker
现在 kong 容器每次都无法使用 msg 运行plugin is enabled but not installed
。我什至尝试将LUA_PACKAGE_PATH
我的 kong 容器的环境变量设置为指向我的插件目录,但没有用。知道为什么会发生这种情况以及如何在我的 Kong 中成功加载自定义插件吗?
prometheus - Grafana 看不到来自 Kong Prometheus 插件的数据源
我对孔很陌生。我想使用 Prometheus 插件和 Grafana 进行监控。我已经按照其手册将 Prometheus 插件设置为 kong - https://docs.konghq.com/hub/kong-inc/prometheus/#accessing-the-metrics。
我正在使用 Kong Deck,所以,我添加了
到我的 kong.yaml 来启用 prometheus 插件。然后,我使用 curl 对 http://localhost:8001/metrics 进行了测试,它正在工作。
之后,我安装了 Grafana 并设置了 Prometheus 数据源。
但它不起作用。我收到 HTTP错误错误网关
到目前为止我所做的是
- 向 Kong 添加了 Prometheus 插件
- 检查 http://localhost:8001/metrics 是否正常工作
- 安装 Grafana
- 添加数据源
我做错了什么或者我错过了什么。请帮忙。
query-parameters - 如何在 Kong 的插件配置中引用查询参数?
我想使用 Kong 的 request-termination & response-transformer 插件实现一个简单的重定向。插件大部分都有效,但我在处理查询参数时遇到了问题。
我的插件配置与此类似(注意:我在无 DB 模式下使用 Kong):
我想获得以下行为:
- 用户访问 http://localhost:8000/ -> 重定向到
/context/
- 用户访问 http://localhost:8000/context -> 重定向到
/context/
- 用户访问 http://localhost:8000/?param=value -> 重定向到
/context/?param=value
- 用户访问 http://localhost:8000/context?param=value -> 重定向到
/context/?param=value
基本上/
和/context
请求都应该被重定向到/context/
(最后一个斜杠),但查询参数应该被保留。
如何修改配置:
包括在请求中匹配的查询参数?我希望能够做类似的事情:
api-gateway - Kong配置的多个文件
我打算基于 swagger yml 生成多个 Kong 声明性文件。有没有办法将它们组合成一个?我看到的唯一选择是使用 Kong Deck,但尚不清楚它是否适用于无 DB 模式。为多个微服务组织 Kong 配置的良好做法是什么?
docker - 为 go-pdk 插件配置企业代理
我正在尝试为 go kong 插件https://github.com/Kong/go-pdk配置公司代理
这是我的代码:
当然我在我的主机上创建了测试代理服务器:127.0.0.1:8080
但它不工作
通过插件文档:kong.Nginx.SetCtx() 在 ngx.ctx 请求上下文表中设置一个值
我通过示例https://github.com/tfabien/kong-forward-proxy/blob/master/src/access.lua制作 了我的 go 插件
正在配置代理
所以,无论如何它不起作用
我的 dockerfile 是
通过以下方式启动 docker:
我该如何解决?
kong-plugin - Konga基本身份验证出现在每个页面上
我是新来的康。我正在尝试为我的网站启用基本身份验证。我在全球范围内启用了它,但身份验证弹出窗口在我访问的每个页面上一次又一次地出现。
kong - Kong dbless/kong-oidc - 是否可以使用 kong-oidc 插件 dbless?
我无法在 dbless 模式下使用 nokia/kong-oidc 插件找到任何文档。这可能吗?
redirect - 在 Kong API 网关中将重定向响应中的位置标头从 HTTP 更改为 HTTPS
我有以下设置
用户请求 --> AWS ELB 应用程序负载均衡器 --> Kong Gateway --> 集成
SSL 终止发生在应用程序负载平衡器上。
我的一个端点使集成响应带有代码 302 的重定向 URL。例如。当我向https://api.domain.my/a/b/c发出请求时,应该使集成返回重定向路径 /x/y/z
此状态为 302 的重定向请求到达 API 网关,该网关应使用完整的 URL 向响应添加位置标头,即https://api.domain.my/x/y/z
但是我在浏览器的标题中得到的响应是位置标题中的http://api.domain.my/x/y/z。我猜这是因为我的 SSL 终止发生在 ELB 上,因此 Kong 只是在位置标头中返回 http://。
有解决方法吗?我怎样才能使用响应变压器来实现这一点?
有没有更好的方法来实现这一目标?