[request_definition] r = sub, dom, path, act [policy_definition] p = sub, dom, path, act [role_definition] g = _, _, _ [policy_effect] e = some(where (p.eft == allow)) [matchers] m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && regexMatch(r.path, p.path) && (r.act == p.act || p.act == '*')