From bf034e94c8348d3c7cbf3954c6ccc1b1a1e448d7 Mon Sep 17 00:00:00 2001 From: wanglei <34475144@qqcom> Date: Sat, 8 Nov 2025 10:09:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=A7=92=E8=89=B2=E5=92=8C?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=95=B0=E6=8D=AE=E8=A1=A8=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=B0=86=E5=85=B6=E7=BB=84=E6=88=90=E9=94=AE?= =?UTF-8?q?=E5=80=BC=E5=AD=98=E5=82=A8=E5=88=B0redis=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/init.lua | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/init.lua b/src/init.lua index 679acb0..c70ceda 100644 --- a/src/init.lua +++ b/src/init.lua @@ -7,9 +7,11 @@ 在"ngx_lua"模块的"init_by_lua_file"命令中执行; 只在启动nginx时初始化一次。 --]] -require("config") +--只在第一个worker进程中执行一次 +if ngx.worker.id() ~= 0 then + return +end -print("init application...") --判断程序是否加载权限数据 --local dict = ngx.shared.dict --local load = dict:get("RBAC") @@ -17,10 +19,8 @@ print("init application...") -- return --end ---只在第一个worker进程中执行一次 -if ngx.worker.id() ~= 0 then - return -end +require("config") +print("init application woker id:", ngx.worker.id()) --初始化,获取系统默认的用户权限,为实现RBAC框架做权限数据准备 local function handler() @@ -60,10 +60,11 @@ local function handler() --row.status:0, local code, rest = roleDao:getPermission2roleId(id) for _, ret in pairs(rest) do - --将数据存储到redis中 + --获取数据表中的数据 local permid = ret.permission_id local perm = ret.permission_code local key = name.."-"..perm + --role_name-permission_code 组成key进行验证 存储到redis中 local ok, err = red:set(key, "1") if not ok then ngx.log(ngx.ERR, "redis failed to set key: "..err) @@ -73,6 +74,7 @@ local function handler() --关闭redis连接 red:close() + --共享数据字典进行数据存储 --dict:set("RBAC", "1") end