Prevent panic on InboxRequestGuard

This commit is contained in:
Rob Ede 2021-12-30 18:39:28 +00:00
parent f6c13cf313
commit 1943bcd7f5
No known key found for this signature in database
GPG key ID: 97C636207D3EF933

View file

@ -1,8 +1,11 @@
use crate::http::{
comment::get_apub_comment,
community::{
community_inbox, get_apub_community_followers, get_apub_community_http,
get_apub_community_moderators, get_apub_community_outbox,
community_inbox,
get_apub_community_followers,
get_apub_community_http,
get_apub_community_moderators,
get_apub_community_outbox,
},
get_activity,
person::{get_apub_person_http, get_apub_person_outbox, person_inbox},
@ -11,7 +14,7 @@ use crate::http::{
};
use actix_web::{
guard::{Guard, GuardContext},
http::Method,
http::{header, Method},
web,
};
use http_signature_normalization_actix::digest::middleware::VerifyDigest;
@ -65,15 +68,12 @@ pub fn config(cfg: &mut web::ServiceConfig, settings: &Settings) {
struct InboxRequestGuard;
impl Guard for InboxRequestGuard {
fn check(&self, request: &GuardContext) -> bool {
if request.head().method != Method::POST {
fn check(&self, ctx: &GuardContext) -> bool {
if ctx.head().method != Method::POST {
return false;
}
if let Some(val) = request.head().headers.get("Content-Type") {
return val
.to_str()
.expect("Content-Type header contains non-ascii chars.")
.starts_with("application/");
if let Some(val) = ctx.head().headers.get(header::CONTENT_TYPE) {
return val.as_bytes().starts_with(b"application/");
}
false
}