问题标签 [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.

0 投票
0 回答
72 浏览

authentication - Kong 使用 JWT 公开第 3 方下游 API 进行身份验证

有一个第 3 方 API,它需要对使用具有刷新机制的 JWT 令牌调用它的应用程序进行 API 身份验证。JWT 令牌用于应用程序(如客户端密钥和密钥),需要随每个请求一起发送,所有请求都相同。

在 Kong 中,可以向下游请求添加静态标头并获取响应。当令牌过期时,是否可以在kong级别生成JWT令牌并将其添加到下游请求中?

我尝试在 StackOverflow 和 kong 文档中查找,并发现了很多插件作为下游服务的身份验证层。我也了解 API 网关通常不负责向下游服务验证自己,我想知道在这种情况下是否有可能,这将帮助我们不要编写新应用程序只是为了生成令牌并为暂且。

0 投票
0 回答
61 浏览

session - Kong会话插件到期

我正在使用 Kong session 插件,目前我能够成功存储客户端的会话,但是,我正在尝试了解此到期是如何工作的。在会话配置中,我有cookie_lifetime: 60cookie_renew: 10. 创建初始会话后,我可以通过 admin api 查看会话信息,http://localhost:8001/sessions其中包含以下信息:

由于我session_renew的设置为 10 秒,我确实看到它在创建新会话时ttl < 10,它会一遍又一遍地这样做,但是,经过一段时间的空闲时间,当我回来检查会话信息时,会话被删除了。所以我想我不明白它是如何cookie_renew工作的,因为根据我的理解,它应该在什么时候继续更新会话ttl < 10,所以不确定是什么导致它删除会话。

目标是能够在会话即将过期之前发送客户端(或客户端可以拉取此信息),并允许客户端触摸会话以重新启动计时器或注销。

0 投票
1 回答
251 浏览

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 中成功加载自定义插件吗?

0 投票
0 回答
92 浏览

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错误错误网关

在此处输入图像描述

到目前为止我所做的是

  1. 向 Kong 添加了 Prometheus 插件
  2. 检查 http://localhost:8001/metrics 是否正常工作
  3. 安装 Grafana
  4. 添加数据源

我做错了什么或者我错过了什么。请帮忙。

0 投票
0 回答
435 浏览

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/(最后一个斜杠),但查询参数应该被保留

如何修改配置:

包括在请求中匹配的查询参数?我希望能够做类似的事情:

0 投票
0 回答
179 浏览

api-gateway - Kong配置的多个文件

我打算基于 swagger yml 生成多个 Kong 声明性文件。有没有办法将它们组合成一个?我看到的唯一选择是使用 Kong Deck,但尚不清楚它是否适用于无 DB 模式。为多个微服务组织 Kong 配置的良好做法是什么?

0 投票
0 回答
162 浏览

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:

我该如何解决?

0 投票
0 回答
48 浏览

kong-plugin - Konga基本身份验证出现在每个页面上

我是新来的康。我正在尝试为我的网站启用基本身份验证。我在全球范围内启用了它,但身份验证弹出窗口在我访问的每个页面上一次又一次地出现。

0 投票
1 回答
74 浏览

kong - Kong dbless/kong-oidc - 是否可以使用 kong-oidc 插件 dbless?

我无法在 dbless 模式下使用 nokia/kong-oidc 插件找到任何文档。这可能吗?

0 投票
0 回答
197 浏览

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://。

有解决方法吗?我怎样才能使用响应变压器来实现这一点?

有没有更好的方法来实现这一目标?