github.com/craicoverflow/tyk@v2.9.6-rc3+incompatible/coprocess/lua/bundle.lua (about) 1 local cjson = require "cjson" 2 3 -- Make the current object accessible for helpers. 4 object = nil 5 6 -- This will be generated by the bundle (request.lua): 7 local request = {} 8 local session = {} 9 10 -- Based on: https://github.com/openresty/lua-nginx-module#ngxreqset_body_file 11 12 function request.start_time() 13 end 14 15 function request.http_version() 16 end 17 18 function request.get_headers() 19 return object['request']['headers'] 20 end 21 22 function request.set_header(key, value) 23 if object['request']['set_headers'] == nil then 24 object['request']['set_headers'] = {} 25 end 26 object['request']['set_headers'][key] = value 27 end 28 29 function request.clear_header(key) 30 if object['request']['delete_headers'] == nil then 31 object['request']['delete_headers'] = {} 32 end 33 object['request']['delete_headers'] = {key} 34 end 35 36 tyk = { 37 -- req = {}, 38 -- req=require("coprocess.lua.tyk.request"), 39 req = request, 40 session = session, 41 header=nil 42 } 43 44 function dispatch(raw_object) 45 object = cjson.decode(raw_object) 46 raw_new_object = nil 47 48 -- Environment reference to hook. 49 hook_name = object['hook_name'] 50 hook_f = _G[hook_name] 51 is_custom_key_auth = false 52 53 -- Set a flag if this is a custom key auth hook. 54 if object['hook_type'] == 4 then 55 is_custom_key_auth = true 56 end 57 58 -- Call the hook and return a serialized version of the modified object. 59 if hook_f then 60 local new_request, new_session, metadata 61 62 -- tyk.header = object['request']['headers'] 63 64 if custom_key_auth then 65 new_request, new_session, metadata = hook_f(object['request'], object['session'], object['metadata'], object['spec']) 66 else 67 new_request, new_session = hook_f(object['request'], object['session'], object['spec']) 68 end 69 70 -- Modify the CP object. 71 object['request'] = new_request 72 object['session'] = new_session 73 object['metadata'] = metadata 74 75 raw_new_object = cjson.encode(object) 76 77 -- return raw_new_object, #raw_new_object 78 79 -- Return the original object and print an error. 80 else 81 return raw_object, #raw_object 82 end 83 84 return raw_new_object, #raw_new_object 85 end 86 87 function dispatch_event(raw_event) 88 print("dispatch_event:", raw_event) 89 end