在本节中,您将学习到,如何配置使用KONG的插件来管理您的API。KONG的核心原则之一就是通过插件来实现API的扩展。插件可以使您更为简单的扩展和管理您的API。

  在以下的步骤中,您将通过配置key-auth插件为您的API添加一个认证的功能。在添加此插件之前,您的所有API都被将代理到上游头。添加并配置此插件后,只有具有正确API密钥的请求会被代理 - 所有其他请求将被KONG拒绝,从而保护您的上游服务免受未经授权的使用,从而实现权限认证功能。

  1. 为您的API配置 key-auth 插件:

  通过以下命令,为之前添加的API新增认证功能:

$ curl -i -X POST \
--url http://localhost:8001/apis/example-api/plugins/ \
--data 'name=key-auth'

  NOTE:该插件还接受一个 config.key_names 参数,默认为[apikey]。它表示在一次请求中,应该包含API密钥[apikey]和参数列表,apikey可以放在header中,也可以直接当作一个请求参数来使用。

  2. 确认插件已经正确的配置好了:

  使用以下命令来验证:

$ curl -i -X GET \
--url http://localhost:8000/ \
--header 'Host: example.com'

  由于请求中没有指定apikey,所以返回的结果应该是403 Forbidden:

HTTP/1.1  Forbidden
... {
"message": "Your authentication credentials are invalid"
}

  正确的请求应该是这样的:

$ curl -i -X GET \
--url http://localhost:8000/ \
--header 'Host: example.com'
--header 'apikey=xxx'

最新文章

  1. Latex中画出函数文件的调用关系拓扑图
  2. 基于Flask的Web应用部署到SAE上遇到的问题
  3. loj 1257 (求树上每一个点到树上另一个点的最长距离)
  4. blade用法
  5. 最详细eclipse汉化插件安装教程
  6. MFC resizer封装
  7. HTTP权威指南阅读笔记五:Web服务器
  8. jQuery coveringBad 效果对比
  9. 流程引擎Activiti系列:在eclipse中搭建咖啡兔的Activiti演示工程中的各种坑及其解决方法(kft-activiti-demo-no-maven)
  10. codeforces A. Table 解题报告
  11. Prefix.pch的作用和用法
  12. phpcms 2008和discuz X3.1实现同步登陆退出论坛(已实现)
  13. C#调用WebService服务(动态调用)
  14. jQuery中bind与live的用法与区别
  15. 原生js+css实现重力模拟弹跳系统的登录页面
  16. Android View框架总结(二)View焦点
  17. 你真的了解word-wrap和word-break的区别吗?
  18. <Python Text Processing with NLTK 2.0 Cookbook>代码笔记
  19. 【ESP8266】、ESP8266通讯使用的AT指令
  20. luogu P3293 [SCOI2016]美味

热门文章

  1. Android-自定义仿QQ列表Item滑动
  2. Python学习-9.Python函数定义
  3. leetcode 字符串转整数(atoi)
  4. MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
  5. pod-infrastructure:latest镜像下载失败
  6. mysql--多表连接查询
  7. python--深浅拷贝 join() 列表和字典的删除 fromkeys建立字典
  8. GO学习笔记 - 数据类型转换
  9. 重新使用Eclipse建立安卓工程遇到的问题
  10. 洛谷P2664 树上游戏(点分治)