项目简介
这是一个基于Kong API Gateway框架开发的插件项目,核心为key-checker插件。该插件主要用于检查API请求中的密钥是否正确,实现对API访问的密钥验证,保障API的安全。
项目的主要特性和功能
- 密钥校验:能从请求里获取指定查询参数(如“key”),并验证其值是否与预设密钥匹配。
- 灵活配置:提供丰富的插件配置选项,可根据实际需求灵活调整。
- 版本兼容:与Kong API Gateway框架的最新版本兼容,确保插件稳定运行。
- 集成简便:借助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】