diff options
Diffstat (limited to 'src/http')
| -rw-r--r-- | src/http/mod.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/http/mod.rs b/src/http/mod.rs index 7b1b983..11887ae 100644 --- a/src/http/mod.rs +++ b/src/http/mod.rs @@ -73,9 +73,7 @@ impl Server { match (method, path) { ("GET", "/") => self.serve_static_file(&mut stream, "./public/index.html"), - ("GET", "/.well-known/oauth-authorization-server") => { - self.handle_metadata(&mut stream) - } + ("GET", "/.well-known/oauth-authorization-server") => self.handle_metadata(&mut stream), ("GET", "/jwks") => self.handle_jwks(&mut stream), ("GET", "/authorize") => self.handle_authorize(&mut stream, &query_params), ("POST", "/token") => self.handle_token(&mut stream, &request), @@ -166,11 +164,14 @@ impl Server { fn handle_token(&self, stream: &mut TcpStream, request: &str) { let body = self.extract_body(request); let form_params = self.parse_form_data(&body); - + // Extract Authorization header from request let auth_header = self.extract_auth_header(request); - match self.oauth_server.handle_token(&form_params, auth_header.as_deref()) { + match self + .oauth_server + .handle_token(&form_params, auth_header.as_deref()) + { Ok(token_response) => { self.send_json_response(stream, 200, "OK", &token_response); } @@ -206,11 +207,12 @@ impl Server { fn extract_auth_header(&self, request: &str) -> Option<String> { let lines: Vec<&str> = request.lines().collect(); - for line in lines.iter().skip(1) { // Skip the request line + for line in lines.iter().skip(1) { + // Skip the request line if line.to_lowercase().starts_with("authorization:") { return Some(line[14..].trim().to_string()); // Skip "Authorization: " } } None } -}
\ No newline at end of file +} |
