kong添加自定义插件(一)

2023-10-31

api网关kong支持自定义插件,但是如何添加一个自定义的插件?

通过admin api 添加一个kong原有的plugin,curl命令方式:curl -i -X POST --url http://192.168.74.111:8001/routes/3da2439b-5a54-4fc1-bf23-7969be09a845/plugins --data 'name=key-auth' 就可以给指定id的route添加插件,这个很简单,没啥难度

如果想添加一个自定义的插件,名称为url-rewrite的插件,如果直接调用上面ctrl命令是会报错的,我们需要修改源码

kong源码修改的正确姿势,我没有找到好的ide来写lua,同时kong的调试比较麻烦,我这里通过虚机里yum方式安装kong(docker安装的修改源码会比较麻烦),然后直接在虚机中修改源码,这种方式很不友好,但是目前也没有好的方式可以在windows下完成调试,如果有好的方式实现debug调试,还请告诉一下,万分感谢!!!

那么这篇文章要完成的就是通过调用admin api方式添加一个名称为url-rewrite的自定义插件,废话不多说,干吧

1、版本

     我这里虚机是在centos6下,安装了kong最新版本1.0,数据库用到的是postgresql10,关于kong及数据库的安装可参照之前的博客。

2、修改文件位置

    linux下kong的文件在哪?/usr/local/share/lua/5.1/kong,这个目录下的文件是kong的源码

3、修改文件

1.需要修改constants.lua文件,在plugins中添加自定义插件名称url-rewrite。

2.进入plugins目录,新建url-writer的文件夹,并创建handler.lua文件和schema.lua文件,handler.lua文件中是插件主要的逻辑,需要继承baseplugin。根据不同阶段完成需要的逻辑。

3.handler.lua文件

这里注意UrlRewriteHander.PRIORITY 是插件执行的顺序。UrlRewriteHander.VERSION是插件的版本。local UrlRewriteHander = BasePlugin:extend(),自定义变量(local指定位非全局变量)UrlRewriteHander并继承baseplugin,接下来是逻辑部分,最后不要忘了return自定义变量。

4.schema.lua文件

 

kong1.0版本中插件有修改,增加了name字段,这里必须要返回你自定义的名称,不然会报错,fields中是对字段的约束

修改完成后重启kong ,指定curl命令,就可以添加插件了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kong添加自定义插件(一) 的相关文章

  • msprofiler 性能调优命令行实战(口罩识别推理)

    案例介绍 本案例使用口罩识别推理程序作为例子进行演示 硬件平台是华为昇腾310设备 Ascend 310 该口罩识别使用目标检测中SSD模型 检测的结果有两个类别 戴口罩的脸 没带口罩的脸 成功执行推理程序后我们对其进行了推理调优 使推理过

随机推荐

  • Socket网络编程

    一 什么是socket socket在英文词典中是插座的意思 但在网络编程我们把它翻译成套接字 即网络插座 它用于描述地址和端口 是一个通信链的句柄 应用程序通过socket向网络发出请求或者回应 socket编程有三种 1 流式套接字 S
  • 关于电脑软件的一些实用推荐(二)

    大纲 零 前言 壹 系统类 贰 软件类 叁 网站类 肆 其他使用习惯及技巧 写在前面 推荐两个正版软件的网站 1 软购商城 2 麦软网 3 softonic 有收费有免费 贰 软件类 二 视频软件 1 KMplayer 来自韩国的全能影音播
  • XML学习之Xml Schema:六、复杂类型--模型组

    模型组元素 如果一个元素的内容是纯元素内容 该元素的内容只包含子元素 没有字符数据 可以使用模型组来构建纯元素的内容 模型组元素有3种 分别是 sequence choice all sequence 表示序列 sequence组中的所有子
  • 回归方程的拟合优度检验_Eviews系列5

    点击上方蓝字关注我们 这期小统带大家继续学习修正检验 异方差 2 昨天我们文末提到 若多重共线性修正后的模型残差项之间存在异方差 我们该使用什么方法进行修正呢 答案是 加权最小二乘法 我们使用加权最小二乘法进行异方差的修正 得到的结果如上表
  • 数组名退化作一个元素的指针,降级

    写一篇博客方便自己复习 参考网址 https www cnblogs com sanghai archive 2013 11 01 3402258 html 数组名退化为指针 在使用数组时 大多数情况下数组都会自动转换为指向第一个元素的指针
  • Java自定义切面缓存注解如此简单(Redis + SpringAop)

    自定义缓存切面注解 1 展示效果 如果使用这种方式 建议使用切面缓存异常类 如果当前方法缓存失败 也应该执行具体业务逻辑而非报错终止程序 具体参考切面缓存 CacheException 1 1 成功保存到redis效果 第一次Redis没有
  • ReactJS编写的树形表格

    表格使用ReactJs编写的树形表格 表格功能 以树形表格的格式显示数据 每条数据的右击菜单根据这条数据中不同的属性标示 可控制对应的类型是否可以下钻 数据对应的地域下钻之后 点击地域前面的小三角可进行本省份下的地市下钻 reportTre
  • vue 实现课程表甘特图

    1 封装 components
  • 决策树建模实践-构建树、显示、剪枝、处理缺失值和预测

    决策树建模 构建决策树 显示决策树 决策树剪枝 处理缺失值 训练数据和预测数据中的 决策树预测 案例 利用决策树进行分类问题 采用CART决策树 假设已经有一份清洗好的数据 前四列表示属性及其值 最后一列为分类 数据示例 slashdot
  • web.xml配置报The content of element type “web-app“ must match错误解决

    1 问题 配置web xml时报如下错 The content of element type web app must match icon display name description distributable context p
  • windows10配置make命令

    本质上来说windows是没有make命令的 而真正和Linux中make命令有相同作用的是mingw32 make 我们为了使用方便可以直接把mingw32 make改为make 但是如果你在其它的编译软件中想要使用mingw32 mak
  • Redis7高级之缓存双写一致性之更新策略探讨(三)

    1 缓存双写一致性 如果redis中有数据 需要和数据库中的值相同 如果redis中无数据 数据库中的值是最新值 且准备回写redis 缓存按照操作分 只读缓存 读写缓存 同步直写策略 写数据库后也同步写 redis 缓存 缓存中的数据和数
  • 微信远程代码执行漏洞(最新版本利用)-亲测已上线

    目录 POC index html exp js 测试总结 最新版微信利用方式 最新版存在 web安全学习了解 web渗透测试 官网 宣紫科技 POC index html exp js ENABLE LOG true IN WORKER
  • Java如何将String转换成json对象或json数组

    导包
  • 安装MySQL提示cab文件损坏_安装所需的 CAB 文件“Redist.cab”已损坏处理办法

    近日为客户调试sql server 2008时意外的然出现两个报错 结果导致部分功能组件无法安装成功 如下 产品 Microsoft SQL Server 2008 联机丛书 简体中文 错误 1335 此安装所需的 CAB 文件 Redis
  • recvfrom vs2010 debug正常 realse错误10040

    学习socket程序 udp多播发送和接收 其中一个接收recvfrom函数 在debug能正常运行 在release无法运行 总是提示10040错误 查询百度 说是接收缓存区不够 下面是程序代码 void MultiSock RecvPa
  • iOS设备、Icon、LaunchImage、图片分辨率

    摘要 iOS的各种设备的分辨率 以及开发用的Icon LaunchImage的分辨率 文中所有数据均来自网络 及博主个人总结 如有错误 以官方数据为准 iOS设备 iOS设备的屏幕的大小 分辨率以及比例因数 Scale Factor 1 i
  • 4-1单链表逆转

    学习完链表以后 在刷PTA的时候 遇见第一题就卡壳了 真是悲哀 是一道关于单链表逆转的 其实还是很简单的 不过因为搞错了位置 再加上其他函数也是第一次用C写 输出的一直是NULL 就把这段代码敲出来方便大家以后看 4 1 单链表逆转 20分
  • 计算机网络---应用层(http协议)

    目录 一 简单理解序列化和反序列化 1 什么是序列化 反序列化 2 网络版计算器程序 二 HTTP协议 1 认识URL 2 http协议格式 3 http方法及http状态码 4 http的特征 三 简单的http协议程序 在tcp ip五
  • kong添加自定义插件(一)

    api网关kong支持自定义插件 但是如何添加一个自定义的插件 通过admin api 添加一个kong原有的plugin curl命令方式 curl i X POST url http 192 168 74 111 8001 routes