diff --git a/plume-common/src/activity_pub/mod.rs b/plume-common/src/activity_pub/mod.rs index dd739634..539af143 100644 --- a/plume-common/src/activity_pub/mod.rs +++ b/plume-common/src/activity_pub/mod.rs @@ -164,7 +164,7 @@ where .headers(headers.clone()) .header( "Signature", - request::signature(sender, &headers, "post", url.path(), url.query()) + request::signature(sender, &headers, ("post", url.path(), url.query())) .expect("activity_pub::broadcast: request signature error"), ) .body(body) diff --git a/plume-common/src/activity_pub/request.rs b/plume-common/src/activity_pub/request.rs index 4ffe7754..6768f2b0 100644 --- a/plume-common/src/activity_pub/request.rs +++ b/plume-common/src/activity_pub/request.rs @@ -115,14 +115,14 @@ pub fn headers() -> HeaderMap { type Method<'a> = &'a str; type Path<'a> = &'a str; type Query<'a> = &'a str; +type RequestTarget<'a> = (Method<'a>, Path<'a>, Option>); pub fn signature( signer: &S, headers: &HeaderMap, - method: Method, - path: Path, - query: Option, + request_target: RequestTarget, ) -> Result { + let (method, path, query) = request_target; let origin_form = if let Some(query) = query { format!("{}?{}", path, query) } else {