This is an automated email from the ASF dual-hosted git repository. xuanwo pushed a commit to branch signing-failed in repository https://gitbox.apache.org/repos/asf/opendal-reqsign.git
commit 9b3ae788d385434d085cd26ebe52158d6785dc01 Author: Xuanwo <[email protected]> AuthorDate: Mon Oct 13 17:54:26 2025 +0800 Fix sign request Signed-off-by: Xuanwo <[email protected]> --- services/azure-storage/src/sign_request.rs | 4 +--- services/google/src/sign_request.rs | 5 +++-- services/huaweicloud-obs/src/sign_request.rs | 14 ++++++++------ 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/services/azure-storage/src/sign_request.rs b/services/azure-storage/src/sign_request.rs index 98563f0..47384a4 100644 --- a/services/azure-storage/src/sign_request.rs +++ b/services/azure-storage/src/sign_request.rs @@ -73,9 +73,7 @@ impl SignRequest for RequestSigner { expires_in: Option<Duration>, ) -> Result<()> { let Some(cred) = credential else { - return Err(reqsign_core::Error::request_invalid( - "credential is required", - )); + return Ok(()); }; let method = if let Some(expires_in) = expires_in { diff --git a/services/google/src/sign_request.rs b/services/google/src/sign_request.rs index 4577133..34087f9 100644 --- a/services/google/src/sign_request.rs +++ b/services/google/src/sign_request.rs @@ -262,8 +262,9 @@ impl SignRequest for RequestSigner { credential: Option<&Self::Credential>, expires_in: Option<Duration>, ) -> Result<()> { - let cred = credential - .ok_or_else(|| reqsign_core::Error::credential_invalid("missing credential"))?; + let Some(cred) = credential else { + return Ok(()); + }; let signing_req = match expires_in { // Query signing - must use ServiceAccount diff --git a/services/huaweicloud-obs/src/sign_request.rs b/services/huaweicloud-obs/src/sign_request.rs index 3725511..7aaa3e2 100644 --- a/services/huaweicloud-obs/src/sign_request.rs +++ b/services/huaweicloud-obs/src/sign_request.rs @@ -77,8 +77,9 @@ impl SignRequest for RequestSigner { credential: Option<&Self::Credential>, expires_in: Option<Duration>, ) -> Result<()> { - let k = credential - .ok_or_else(|| reqsign_core::Error::credential_invalid("missing credential"))?; + let Some(cred) = credential else { + return Ok(()); + }; let now = self.time.unwrap_or_else(Timestamp::now); let method = if let Some(expires_in) = expires_in { @@ -89,15 +90,16 @@ impl SignRequest for RequestSigner { let mut ctx = SigningRequest::build(parts)?; - let string_to_sign = string_to_sign(&mut ctx, k, now, method, &self.bucket)?; - let signature = base64_hmac_sha1(k.secret_access_key.as_bytes(), string_to_sign.as_bytes()); + let string_to_sign = string_to_sign(&mut ctx, cred, now, method, &self.bucket)?; + let signature = + base64_hmac_sha1(cred.secret_access_key.as_bytes(), string_to_sign.as_bytes()); match method { SigningMethod::Header => { ctx.headers.insert(DATE, now.format_http_date().parse()?); ctx.headers.insert(AUTHORIZATION, { let mut value: HeaderValue = - format!("OBS {}:{}", k.access_key_id, signature).parse()?; + format!("OBS {}:{}", cred.access_key_id, signature).parse()?; value.set_sensitive(true); value @@ -105,7 +107,7 @@ impl SignRequest for RequestSigner { } SigningMethod::Query(expire) => { ctx.headers.insert(DATE, now.format_http_date().parse()?); - ctx.query_push("AccessKeyId", &k.access_key_id); + ctx.query_push("AccessKeyId", &cred.access_key_id); ctx.query_push("Expires", (now + expire).as_second().to_string()); ctx.query_push( "Signature",
