修改配置文件,增加lua使用的共享内存例子,用于测试使用

This commit is contained in:
wanglei 2025-11-05 16:17:17 +08:00
parent 00436a10e9
commit f12c32db08
4 changed files with 45 additions and 18 deletions

View File

@ -25,19 +25,19 @@ http {
#lua_ssl_verify_depth 3; #lua_ssl_verify_depth 3;
#在Nginx启动时执行的Lua代码块 #在Nginx启动时执行的Lua代码块
lua_shared_dict dict_a 1m; #初始化用户角色权限相关的共享内存
init_by_lua_block { lua_shared_dict dictRBAC 50m;
-- 定义一个全局变量 #init_by_lua_block {
ngx.log(ngx.INFO, "Initializing global variable") # -- 定义一个全局变量
global_var = "Hello, Nginx with Lua!" # ngx.log(ngx.INFO, "Initializing global variable")
# global_var = "Hello, Nginx with Lua!"
-- 初始化一个共享字典(需要 lua-shared-dict 模块) # -- 初始化一个共享字典(需要 lua-shared-dict 模块)
local shared_dict = ngx.shared.dict_a # local shared_dict = ngx.shared.dict_a
shared_dict:set("key", "value") # shared_dict:set("key", "value")
} #}
#init_by_lua_block init_by_lua_file 只能初始化其中的一个,不能同时启用 #init_by_lua_block init_by_lua_file 只能初始化其中的一个,不能同时启用
#否则报错nginx: [emerg] "init_by_lua_file" directive is duplicate #否则报错nginx: [emerg] "init_by_lua_file" directive is duplicate
#init_by_lua_file '/home/frankly/work/AuthPlatform/src/init.lua'; init_by_lua_file '/home/frankly/work/AuthPlatform/src/init.lua';
server { server {
listen 9080; listen 9080;
@ -60,7 +60,7 @@ http {
location /testRBAC { location /testRBAC {
content_by_lua_file '${APP_PATH}/src/test/testRBAC.lua'; content_by_lua_file '${APP_PATH}/src/test/testRBAC.lua';
} }
location /cjson { location /test {
content_by_lua_file '${APP_PATH}/src/test/test.lua'; content_by_lua_file '${APP_PATH}/src/test/test.lua';
} }
location = /testSM { location = /testSM {

View File

@ -10,9 +10,14 @@
print("init application...") print("init application...")
--初始化获取系统默认的用户权限为实现RBAC框架做权限数据准备 --初始化获取系统默认的用户权限为实现RBAC框架做权限数据准备
cjson = require "cjson" local data = {
local dict_a = ngx.shared.dict_a admin = {
local v = dict_a:get("abc") "system:user:add", "system:user:edit", "system:user:delete", "system:user:view", "system:user:list"
if not v then },
dict_a:set("abc", 9) guest = {
end "system:user:view"
},
}
local dict = ngx.shared.dictRBAC
dict:set("users", data)

View File

@ -16,8 +16,15 @@ local cjson = require("cjson.safe")
--max =a and b or c--a?b:c --max =a and b or c--a?b:c
--[[
--调用c库相关例子
local mylib = require "addlib" local mylib = require "addlib"
ngx.say(addlib.add(5,7)) ngx.say(addlib.add(5,7))
--]]
local dict = ngx.shared.dictRBAC
local val = dict:get("users")
ngx.say(val)
--[[ --[[
local uuid = require("resty.jit-uuid") local uuid = require("resty.jit-uuid")

View File

@ -75,4 +75,19 @@ function RBAC:get_user_permissions(user_id)
return user_permissions return user_permissions
end end
-- 添加角色
--_, err = permit.AddPolicy(roleName, roleId, action)
-- 赋予用户角色
--_, err = permit.AddRoleForUser(user, roleName)
-- 查看具有某角色的所有用户
--res, err = permit.GetUsersForRole(roleName)
-- 移除用户具有的角色
--_, err = permit.DeleteRoleForUser(user, roleName)
-- 移除角色,跟角色相关联的用户都被移除
--_, err = permit.DeleteRole(roleName)
return RBAC return RBAC