Check Authorization header before accepting gree request

This commit is contained in:
Ethan O'Brien 2024-10-18 14:53:04 -05:00
parent 465cfda1b4
commit 6a98949f77
2 changed files with 22 additions and 1 deletions

View file

@ -62,7 +62,7 @@ async fn api_req(req: HttpRequest, body: String) -> HttpResponse {
} else if !req.path().starts_with("/api") && !req.path().starts_with("/v1.0") { } else if !req.path().starts_with("/api") && !req.path().starts_with("/v1.0") {
return webui::main(req); return webui::main(req);
} }
if headers.get("a6573cbe").is_none() { if headers.get("a6573cbe").is_none() && req.path().starts_with("/api") {
if args.hidden { if args.hidden {
return not_found(&headers); return not_found(&headers);
} else { } else {
@ -179,6 +179,13 @@ pub async fn request(req: HttpRequest, body: String) -> HttpResponse {
if args.hidden && req.path().starts_with("/api/webui/") { if args.hidden && req.path().starts_with("/api/webui/") {
return not_found(&req.headers()); return not_found(&req.headers());
} }
if req.path().starts_with("/v1.0") && req.headers().get("Authorization").is_none() {
if args.hidden {
return gree::not_found();
} else {
return webui::main(req);
}
}
if req.method() == "POST" { if req.method() == "POST" {
match req.path() { match req.path() {
"/v1.0/auth/initialize" => gree::initialize(req, body), "/v1.0/auth/initialize" => gree::initialize(req, body),

View file

@ -126,6 +126,20 @@ fn send(req: HttpRequest, resp: JsonValue) -> HttpResponse {
.body(json::stringify(resp)) .body(json::stringify(resp))
} }
pub fn not_found() -> HttpResponse {
let resp = object!{
code: 10001,
message: "Not Found",
result: "NG"
};
HttpResponse::NotFound()
.insert_header(ContentType::json())
.insert_header(("Expires", "-1"))
.insert_header(("Pragma", "no-cache"))
.insert_header(("Cache-Control", "must-revalidate, no-cache, no-store, private"))
.body(json::stringify(resp))
}
pub fn initialize(req: HttpRequest, body: String) -> HttpResponse { pub fn initialize(req: HttpRequest, body: String) -> HttpResponse {
let body = json::parse(&body).unwrap(); let body = json::parse(&body).unwrap();
let token = create_acc(&body["token"].to_string()); let token = create_acc(&body["token"].to_string());