Openresty最佳解读 | 第9篇:Openresty实现的网关权限控制

news/2025/2/23 5:38:08

简介


采用openresty 开发出的api网关有很多,比如比较流行的kong、orange等。这些API 网关通过提供插件的形式,提供了非常多的功能。这些组件化的功能往往能够满足大部分的需求,如果要想达到特定场景的需求,可能需要二次开发,比如RBAC权限系统。本小节通过整合前面的知识点,来构建一个RBAC权限认证系统。

技术栈

本小节采用了以下的技术栈

验证流程

  • 用户请求经过nginx,nginx的openresty的模块通过拦截请求来进行权限判断

  • openresty的access_by_lua_file模块,进行了一系列的判断

  • 用户的请求是否为白名单uri,如果为白名单uri,则直接通过验证,进入下一个验证环节content_by_lua_file,这个环节直接打印一句话:“恭喜,请求通过。”
  • 如果用户请求不为白名单url,则需要取出请求header中的token,如果请求的header不存在token,则直接返回结果401,无权限访问。
  • 如果用户请求的uri的请求头包含token ,则取出token,解密token取出用户id
  • 根据取出的userid去查询数据库获取该用户的权限,如果权限包含了该请求的uri,请求可以通过,否则,请求不通过。
  • 请求如果通过access_by_lua_file模块,则进入到content_by_lua_file模块,该模块直接返回一个字符串给用户请求,在实际的开发中,可

http://www.niftyadmin.cn/n/1555260.html

相关文章

linux 数字的地方,GDPR、数字身份和区块链

不可更改的记录和GDPR数据主体权利能共存吗?为什么区块链或许满足不了数据隐私需求?技术行业里有时候你不得不与矛盾的需求共处。我们经常发现自己处于在平衡“人类天性vs安全”或“法律vs技术”的状况中。人类天性vs安全的例子常见于口令策略领域——强口令必然伴随着复杂的…

Java面试必问题:Spring 面试问题 TOP 50

Spring Framework 现在几乎已成为 Java Web 开发的标配框架。那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下。 本文内容主要翻译自 Top 50 Spring Interview Questions You Must Prepare In 2018 1. 一般问题 1.1. 不同版本…

外星人台式电脑_【案例赏析】戴尔外星人X 搜狗 电商营销方案

01 背景1、品牌背景戴尔作为国际品牌,其中戴尔外星人系列十分知名。戴尔外星人配备性能卓越的显卡,堪称功能强大的游戏笔记本电脑。然而戴尔进军国内市场以来,同行竞争压力巨大,高配置戴尔外星人系列相对本土企业的低价优势和分销…

C语言字母排序不分大小写,如何按字母顺序排序字符串数组(区分大小写,非标准排序规则)...

保持一致的话一起…对于单词列表,将“相同”的单词组合在一起(即使情况不同)往往更为有用.例如:Keeping things together: Simple "M after m":------------------------ -------------------mars marsmars bar mars barMars bar milkmilk milk-dudsMilk …

Java面试必问题:目录

Java面试必问题:目录 Java面试必问题:Spring 面试问题 TOP 50 Java面试必问题:Spring AOP 原理源码深度剖析 Java面试必问题:Spring Cloud底层原理 Java面试必问题:Java遇见了Html--Servlet篇 Java面试必问题&…

讲义not have data_高中物理核心素养提升培优讲义 第十一讲:静电场

原标题:高中物理核心素养提升培优讲义 第十一讲:静电场1.均匀带电球壳内外的电场(1)均匀带电球壳内部的场强处处为零。(2)均匀带电球壳外任意一点的场强公式为。式中 r 是壳外任意一点到球心距离, Q 为球壳带的总电量。2&#xff…

注册的c语言编程码,C语言编程实现用户的注册和登录

老鱼1级2011-12-26 回答#include "stdafx.h"#include "string.h"#define n 20void zhuce();void denglu();char yhm[n],mm[n];int main(int argc, char* argv[]){int i;printf("-----------\n1.注册\n2.登陆\n3.继续\n0.退出\n");scanf("%d…

Java面试必问题:Spring AOP 原理源码深度剖析

概述 AOP(Aspect-Oriented Programming) 面向切面编程。Spring Aop 在 Spring框架中的地位举足轻重,主要用于实现事务、缓存、安全等功能。本篇主要是对源码进行深度分析。 主要介绍以下三个方面: Spring AOP 多种代理机制相关核心类介绍。 Spring Boot 中AOP注解方式源码分…