--- --- Generated by EmmyLua(https://github.com/EmmyLua) --- Created by fanfan. --- DateTime: 2020-05-27 9:22 --- local key=KEYS local portalKeys = {} local sessionKeys = {} local size = #key local result = {} if size == 0 then return '' end for i = 1, size do if string.find(key[i],"portal") then table.insert(portalKeys,key[i]) elseif string.find(key[i],"shiro:session") then table.insert(sessionKeys,key[i]) end end local portalKeysSize = #portalKeys local sessionKeysSize = #sessionKeys local regx = "(.+token%p)(.+)" --local pi = "portal:user:login_token_a8b0b971-77c2-4e00-b994-86e8529b6d22" --local name = string.gsub(pi,"(.+token%p)(.+)","%2") -- 遍历数组 local function IsInTable(value, tbl) for k,v in ipairs(tbl) do if v == value then return true; end end return false; end local function square (List1,List2,bool) local Len = #List1; local pk = "portal:user:login_token_" local sk = "shiro:session:login_token_" for i = 1, Len do local si = "" local token = string.gsub(tostring(List1[i]),regx,"%2") if bool then si = sk..token else si = pk..token end print("si........."..si); if IsInTable(si,List2) then table.insert(result,pk..token) end end end if portalKeysSize <= sessionKeysSize then square(portalKeys,sessionKeys,true) else square(sessionKeys,portalKeys,false) end local resultSize = #result --if resultSize then -- for i = 1, resultSize do -- print(result[i]) -- end --end if (resultSize == 0) then return '' else return result; end