littlebot
Published on 2025-04-11 / 1 Visits
0

【源码】基于Kong API Gateway框架的密钥检查插件系统

项目简介

这是一个基于Kong API Gateway框架开发的插件项目,核心为key-checker插件。该插件主要用于检查API请求中的密钥是否正确,实现对API访问的密钥验证,保障API的安全。

项目的主要特性和功能

  1. 密钥校验:能从请求里获取指定查询参数(如“key”),并验证其值是否与预设密钥匹配。
  2. 灵活配置:提供丰富的插件配置选项,可根据实际需求灵活调整。
  3. 版本兼容:与Kong API Gateway框架的最新版本兼容,确保插件稳定运行。
  4. 集成简便:借助Kong的PDK(Plugin Development Kit)实现,便于集成到Kong API Gateway中。

安装使用步骤

假设用户已经下载了本项目的源码文件。

1. 构建镜像

在项目根目录下执行以下命令构建Docker镜像: docker build -t kong-demo .

2. 运行容器

使用以下命令运行容器: docker run -ti --rm --name kong-go-plugins \ -e "KONG_DATABASE=off" \ -e "KONG_GO_PLUGINS_DIR=/tmp/go-plugins" \ -e "KONG_DECLARATIVE_CONFIG=/tmp/config.yml" \ -e "KONG_PLUGINS=key-checker" \ -e "KONG_PROXY_LISTEN=0.0.0.0:8000" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong-demo

3. 本地开发编译

参考 https://www.cnblogs.com/mbpframework/p/12891866.html 进行安装。 执行以下命令编译 .so 文件: go build -buildmode plugin key-checker.go 将生成的 go-pluginserver 文件复制到 /usr/local/bin 目录,把生成的 .so 文件放到 go_plugins_dir 定义的目录中。

4. 修改配置文件

修改 /etc/kong/kong.conf 文件: plugins = bundled,key-checker,custom-rate-limiting go_plugins_dir = /etc/kong/plugins go_pluginserver_exe = /usr/local/bin/go-pluginserver

5. 添加服务和路由

添加服务: curl -i -X POST \ --url http://localhost:8001/services/ \ --data 'name=key-checker-service' \ --data 'url=https://reqres.in/api/users?page=2' 添加路由: curl -i -X POST \ --url http://localhost:8001/services/key-checker-service/routes \ --data 'paths[]=/' 添加插件: curl -i -X POST \ --url http://localhost:8001/services/key-checker-service/plugins/ \ --data 'name=key-checker'

6. 重启服务

kong prepare && kong reload

7. 测试

在konga中配置插件,然后使用以下命令发送请求进行测试: curl localhost:8000/?key=test curl localhost:8000/?key=mysecretconsumerkey | json_pp

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】