转载请标明出处:

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. JS异步执行之setTimeout 0的妙用

    最近在工作中遇到一些问题,大致是关于js执行问题的.由于没搞清执行顺序,导致出现了一些奇怪的bug. 所以这里整理一些有关异步执行的知识(冰山一角角)... 大家都知道js是单线程的,执行起来是顺序的 ...

  2. JUnit测试框架的使用

    1.学习Junit框架的使用 可通过以下两个示例进行学习. A.Junit使用方法示例1 1)把Junit引入当前项目库中 新建一个 Java 工程—coolJUnit,打开项目coolJUnit 的 ...

  3. topshelf windows服务

    一 开发: 1.新建控制台程序 2.nuget下载topshelf,根据不同的net版本选择下载版本,本人4.5下载3.3.1 3.main方法中增加 HostFactory.Run(x => ...

  4. MySQL的知识回顾

    经过一段时间的NodeJs开发经历,选用的数据库是MySQL,一开始以为自己对数据库的基础知识掌握还ok,因为毕竟自己以前用过Apache+PHP+MySQL做数据库课程设计,但是在开发过程中才知道在 ...

  5. 对HTML的大致了解

    HTML的全称是Hyper Text Markup Language(超文本标记语言),是一种标记语言.其中,HTML文档一个重要的.广泛使用的标准HTML4.01是在1999年12月24日由W3C组 ...

  6. 【代码笔记】XML深入学习:DTD约束与DTD语法(2)

    DTD语法之定义实体(了解即可) 实体分为一般实体和参数实体. 定义实体:定义变量 引用实体:使用变量 一般实体:定义实体在DTD中,实体引用在xml中. 参数实体:定义实体在DTD中,实体引用在DT ...

  7. ie浏览器 vuejs axios Promise 未定义

    随着前端技术的发现,es6语法在被更大范围的使用,而很多的浏览器并不支持ES6,比如IE…… 这里我们介绍几个解决方法. 一.使浏览器兼容ES6基本语法 1.在引入其他脚本前先引入browser.mi ...

  8. 防反编译、混淆文件proguard.cfg与proguard-project.txt详解

    在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 如果需要对项目进行全局混码,只需要进行一步操 ...

  9. 避免Autoclose和Autoshrink选项

    避免Autoclose和Autoshrink选项发布日期:2001年12月18日 问题:我在Microsoft SQL Server 2000资源工具包中读到了一个用于就应当避免使用的选项对所有数据库 ...

  10. Spring Boot学习路线

    Spring Boot 学习路线,本文计划根据作者近几年的工作.学习经验,来分析和制定一个学习使用 Spring Boot技术的步骤路线图. SpringBoot是伴随着Spring4.0诞生的: S ...