|
|
|
@ -59,7 +59,7 @@ where |
|
|
|
let token = request |
|
|
|
let token = request |
|
|
|
.headers() |
|
|
|
.headers() |
|
|
|
.get_one("Authorization") |
|
|
|
.get_one("Authorization") |
|
|
|
.map(|s| s[7..].to_owned()) // Split off "Bearer "
|
|
|
|
.and_then(|s| s.get(7..)) // Split off "Bearer "
|
|
|
|
.or_else(|| request.query_value("access_token").and_then(|r| r.ok())); |
|
|
|
.or_else(|| request.query_value("access_token").and_then(|r| r.ok())); |
|
|
|
|
|
|
|
|
|
|
|
let limit = db.globals.max_request_size(); |
|
|
|
let limit = db.globals.max_request_size(); |
|
|
|
@ -134,10 +134,14 @@ where |
|
|
|
} |
|
|
|
} |
|
|
|
AuthScheme::ServerSignatures => { |
|
|
|
AuthScheme::ServerSignatures => { |
|
|
|
// Get origin from header
|
|
|
|
// Get origin from header
|
|
|
|
let x_matrix = match request.headers().get_one("Authorization").map(|s| { |
|
|
|
let x_matrix = match request |
|
|
|
|
|
|
|
.headers() |
|
|
|
|
|
|
|
.get_one("Authorization") |
|
|
|
|
|
|
|
.and_then(|s| |
|
|
|
// Split off "X-Matrix " and parse the rest
|
|
|
|
// Split off "X-Matrix " and parse the rest
|
|
|
|
s[9..] |
|
|
|
s.get(9..)) |
|
|
|
.split_terminator(',') |
|
|
|
.map(|s| { |
|
|
|
|
|
|
|
s.split_terminator(',') |
|
|
|
.map(|field| { |
|
|
|
.map(|field| { |
|
|
|
let mut splits = field.splitn(2, '='); |
|
|
|
let mut splits = field.splitn(2, '='); |
|
|
|
(splits.next(), splits.next().map(|s| s.trim_matches('"'))) |
|
|
|
(splits.next(), splits.next().map(|s| s.trim_matches('"'))) |
|
|
|
|