Software /
code /
prosody-modules
Annotate
mod_http_debug/mod_http_debug.lua @ 5511:0860497152af
mod_http_oauth2: Record hash of client_id to allow future verification
RFC 6819 section 5.2.2.2 states that refresh tokens MUST be bound to the
client. In order to do that, we must record something that can
definitely tie the client to the grant. Since the full client_id is so
large (why we have this client_subset function), a hash is stored
instead.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 02 Jun 2023 10:14:16 +0200 |
parent | 5492:b6af4d1ff8c1 |
rev | line source |
---|---|
5333
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local json = require "util.json" |
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 module:depends("http") |
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
4 local function handle_request(event) |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
5 local request = event.request; |
5491
7842502c1157
mod_http_debug: Log some extended info about requests
Kim Alvefur <zash@zash.se>
parents:
5490
diff
changeset
|
6 (request.log or module._log)("debug", "%s -- %s %q HTTP/%s -- %q -- %s", request.ip, request.method, request.url, request.httpversion, request.headers, request.body); |
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
7 return { |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
8 status_code = 200; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
9 headers = { content_type = "application/json" }; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
10 host = module.host; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
11 body = json.encode { |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
12 body = request.body; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
13 headers = request.headers; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
14 httpversion = request.httpversion; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
15 id = request.id; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
16 ip = request.ip; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
17 method = request.method; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
18 path = request.path; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
19 secure = request.secure; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
20 url = request.url; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
21 }; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
22 } |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
23 end |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
24 |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
25 local methods = module:get_option_set("http_debug_methods", { "GET"; "HEAD"; "DELETE"; "OPTIONS"; "PATCH"; "POST"; "PUT" }); |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
26 local route = {}; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
27 for method in methods do |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
28 route[method] = handle_request; |
5492
b6af4d1ff8c1
mod_http_debug: Handle any path under /debug/* as well
Kim Alvefur <zash@zash.se>
parents:
5491
diff
changeset
|
29 route[method .. " /*"] = handle_request; |
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
30 end |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
31 |
5333
10fcfa7e62a1
mod_http_debug: Module that echos back HTTP request info for debugging
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 module:provides("http", { |
5490
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
33 route = route; |
91564b57e595
mod_http_debug: Handle more HTTP methods
Kim Alvefur <zash@zash.se>
parents:
5333
diff
changeset
|
34 }) |