Browse Source

[Minor] Add authentication results parser function

tags/3.2
Vsevolod Stakhov 2 years ago
parent
commit
3f14f4a3e5
1 changed files with 24 additions and 0 deletions
  1. 24
    0
      lualib/lua_auth_results.lua

+ 24
- 0
lualib/lua_auth_results.lua View File

@@ -275,4 +275,28 @@ end

exports.gen_auth_results = gen_auth_results

local aar_elt_grammar
-- This function parses an ar element to a table of kv pairs that represents different
-- elements
local function parse_ar_element(elt)

if not aar_elt_grammar then
-- Generate grammar
local lpeg = require "lpeg"
local P = lpeg.P
local S = lpeg.S
local V = lpeg.V
local C = lpeg.C
local space = S(" ")^0
local doublequoted = space * P'"' * ((1 - S'"\r\n\f\\') + (P'\\' * 1))^0 * '"' * space
local comment = space * P{ "(" * ((1 - S"()") + V(1))^0 * ")" } * space
local name = C((1 - S('=(" '))^1) * space
local pair = lpeg.Cg(name * "=" * space * name) * space
aar_elt_grammar = lpeg.Cf(lpeg.Ct("") * (pair + comment + doublequoted)^1, rawset)
end

return aar_elt_grammar:match(elt)
end
exports.parse_ar_element = parse_ar_element

return exports

Loading…
Cancel
Save