转载请标明出处:

http://blog.csdn.net/forezp/article/details/78616856

本文出自方志朋的博客

目录

为什么有这系列文章

权限控制在任何的系统中都为一个基本模块,没有权限,就不要谈系统。权限控制的重要性不言而喻。在我所做的Spring Cloud微服务系统,采用的权限控制框架为Spring Cloud Oauth2和Spring Boot Securtiy,这两个框架组合构成了一个强大的权限安全模块。搭建好,设置好,其实是非常简单的。Spring Boot Securtiy是对方法层面的控制,所以要在方法上加注解。随着业务的扩张,注解这种方式无疑给开发人员带来了非常大的工作量,由于开发人员的不规范,甚至连注解都不愿意写了。我在思考能不能废弃掉Spring Cloud Oauth2和Spring Boot Securtiy,废弃掉注解,让开发人员从注解中解放出来。

带着这样的思考,我首先想到的是kong api gateway,kong提供了非常多的插件化的模块,能够满足大部分的业务需求,但不能满足RBAC(基于角色的权限控制)。后来就想自己去实现。实现的过程就是不断学习和探索的过程,我从0基础的lua和openresty,花了三天的时间就实现了本系列文章所写的全部功能。另外花了两个周末把这系列文章整理出来。

之所以说是整理文章,因为很多东西并非我原创,甚至直接拿了很多资料、博客的代码,直接复制粘贴。那我为什么要粘贴,为什么不自己写?一是个人时间精力有限,二是已经有了轮子,为什么要自己造一个?三是,为了保证系列文章的完整性。感谢openresty的作者章亦春、openresty 最佳实践的作者WenMing张开涛等众多开源者和知名博主。

参考资料

所以在此说明下,我参考了甚至copy了以下的博客或者资料:

openresty官方网站:http://openresty.org/en/

openresty 最佳实践: http://wiki.jikexueyuan.com/project/openresty/

跟我学Nginx+Lua开发:http://www.iteye.com/blogs/subjects/nginx-lua

lua入门教程:http://www.runoob.com/lua/lua-tutorial.html

系列文章的源码下载

本系列的文章源码下载地址:

https://github.com/forezp/openresty-best-samples




扫码关注有惊喜

(转载本站文章请注明作者和出处 方志朋的博客

Openresty最佳案例 | 汇总的更多相关文章

  1. Openresty最佳案例 | 第4篇:OpenResty常见的api

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616660 本文出自方志朋的博客 获取请求参数 vim /usr/example/exa ...

  2. Openresty最佳案例 | 第2篇:Lua入门

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616622 本文出自方志朋的博客 什么是lua Lua 是一种轻量小巧的脚本语言,用标准 ...

  3. Openresty最佳案例 | 第8篇:RBAC介绍、sql和redis模块工具类

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616738 本文出自方志朋的博客 RBAC介绍 RBAC(Role-Based Acce ...

  4. Openresty最佳案例 | 第9篇:Openresty实现的网关权限控制

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616779 本文出自方志朋的博客 简介 采用openresty 开发出的api网关有很多 ...

  5. Openresty最佳案例 | 第7篇: 模块开发、OpenResty连接Redis

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616714 本文出自方志朋的博客 Lua模块开发 在实际的开发过程中,不可能把所有的lu ...

  6. Openresty最佳案例 | 第6篇:OpenResty连接Mysql

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616698 本文出自方志朋的博客 centos 安装mysl Centos系统下安装my ...

  7. Openresty最佳案例 | 第5篇:http和C_json模块

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616672 本文出自方志朋的博客 http客户端 Openresty没有提供默认的Htt ...

  8. Openresty最佳案例 | 第3篇:Openresty的安装

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616645 本文出自方志朋的博客 我的服务器为一台全新的centos 7的服务器,所以从 ...

  9. Openresty最佳案例 | 第1篇:Nginx介绍

    转载请标明出处: http://blog.csdn.net/forezp/article/details/78616591 本文出自方志朋的博客 Nginx 简介 Nginx是一个高性能的Web 服务 ...

随机推荐

  1. IIS7部署网站出现500.19错误(权限不足)的解决方案

    错误摘要 HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core 通知 未知 处理 ...

  2. HashTable 元素的查找

    Hashtable 特点:键与值成对存在,键是唯一的,不能重复.在查找元素的时候,我们往往是依据键区查找值的 三种方法 contains   包含 containsKey containsValue ...

  3. mvc中在Action里调用另一个Action

    今天做东西时发现一个新东西.即在一个Action调用另一Action.前提是同一个控制器.(没在一个控制里的没试过) 调用方法: public   ActionResult Test1(){ //to ...

  4. 重构指南 - 使用多态代替条件判断(Replace conditional with Polymorphism)

    多态(polymorphism)是面向对象的重要特性,简单可理解为:一个接口,多种实现. 当你的代码中存在通过不同的类型执行不同的操作,包含大量if else或者switch语句时,就可以考虑进行重构 ...

  5. csharp: DataTable结构相同的比较

    )
 ) * pageSize;
 ; i++)
 {
 DataRow newdr = newdt.NewRow();
 DataRow dr = dt.Rows[i];
 foreach (Dat ...

  6. Nginx集群(负载均衡)

    一.集群介绍 1.传统web访问模型 (1)传统web访问模型完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 (2)传统模型缺点 单点故障 ...

  7. arcgis server 10.1 发布动态图层展示海量及频繁更新的数据步骤

    Arcgis server  发布动态图层及调用动态图层 做这个动态图层功能的原由是 有一个30万的数据需要通过arcgis GP工具转成shp然后渲染加载进地图,原来的做法是遍历生成shp面要素,读 ...

  8. CSS3控制单行文本的溢出

    text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出.语法: 但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,还须定义 ...

  9. Oracle自定义行转列函数

    --行转列自定义函数,只针对TABLE1表 --paramType是参数类型,用于判断,param1和param2是条件参数 create or replace function My_concat( ...

  10. Flask入门数据库框架flask-SQLAlchemy(十)

    ​ Web程序开发中最重要的莫过于关系型数据库,即SQL 数据库,另外文档数据库(如 mongodb).键值对数据库(如 redis)慢慢变得流行. 原因 : 我们不直接使用这些数据库引擎提供的 Py ...