Skip to content

Commit e210989

Browse files
Address PR review: use millisecond timestamps, remove unnecessary clones
1 parent d6590a2 commit e210989

File tree

3 files changed

+26
-26
lines changed

3 files changed

+26
-26
lines changed

crates/common/src/integrations/prebid.rs

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,6 @@ impl IntegrationAttributeRewriter for PrebidIntegration {
262262
}
263263
}
264264

265-
266265
fn transform_prebid_response(
267266
response: &mut Json,
268267
request_host: &str,
@@ -620,24 +619,22 @@ impl AuctionProvider for PrebidAuctionProvider {
620619
log::info!("Prebid: requesting bids for {} slots", request.slots.len());
621620

622621
// Create signer and compute signature if request signing is enabled
623-
let signer_with_signature =
624-
if let Some(request_signing_config) = &context.settings.request_signing {
625-
if request_signing_config.enabled {
626-
let request_info = RequestInfo::from_request(context.request);
627-
let signer = RequestSigner::from_config()?;
628-
let params = SigningParams::new(
629-
request.id.clone(),
630-
request_info.host,
631-
request_info.scheme,
632-
);
633-
let signature = signer.sign_request(&params)?;
634-
Some((signer, signature, params))
635-
} else {
636-
None
637-
}
622+
let signer_with_signature = if let Some(request_signing_config) =
623+
&context.settings.request_signing
624+
{
625+
if request_signing_config.enabled {
626+
let request_info = RequestInfo::from_request(context.request);
627+
let signer = RequestSigner::from_config()?;
628+
let params =
629+
SigningParams::new(request.id.clone(), request_info.host, request_info.scheme);
630+
let signature = signer.sign_request(&params)?;
631+
Some((signer, signature, params))
638632
} else {
639633
None
640-
};
634+
}
635+
} else {
636+
None
637+
};
641638

642639
// Convert to OpenRTB with all enrichments
643640
let openrtb = self.to_openrtb(

crates/common/src/openrtb.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ pub struct TrustedServerExt {
124124
pub request_host: Option<String>,
125125
#[serde(skip_serializing_if = "Option::is_none")]
126126
pub request_scheme: Option<String>,
127-
/// Unix timestamp for replay protection
127+
/// Unix timestamp in milliseconds for replay protection
128128
#[serde(skip_serializing_if = "Option::is_none")]
129129
pub ts: Option<u64>,
130130
}

crates/common/src/request_signing/signing.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ pub struct SigningParams {
5858
}
5959

6060
impl SigningParams {
61-
/// Creates a new `SigningParams` with the current timestamp
61+
/// Creates a new `SigningParams` with the current timestamp in milliseconds
6262
#[must_use]
6363
pub fn new(request_id: String, request_host: String, request_scheme: String) -> Self {
6464
Self {
@@ -67,7 +67,7 @@ impl SigningParams {
6767
request_scheme,
6868
timestamp: std::time::SystemTime::now()
6969
.duration_since(std::time::UNIX_EPOCH)
70-
.map(|d| d.as_secs())
70+
.map(|d| d.as_millis() as u64)
7171
.unwrap_or(0),
7272
}
7373
}
@@ -313,13 +313,13 @@ mod tests {
313313
assert_eq!(params.request_id, "req-123");
314314
assert_eq!(params.request_host, "example.com");
315315
assert_eq!(params.request_scheme, "https");
316-
// Timestamp should be recent (within last minute)
317-
let now = std::time::SystemTime::now()
316+
// Timestamp should be recent (within last minute), in milliseconds
317+
let now_ms = std::time::SystemTime::now()
318318
.duration_since(std::time::UNIX_EPOCH)
319319
.unwrap()
320-
.as_secs();
321-
assert!(params.timestamp <= now);
322-
assert!(params.timestamp >= now - 60);
320+
.as_millis() as u64;
321+
assert!(params.timestamp <= now_ms);
322+
assert!(params.timestamp >= now_ms - 60_000);
323323
}
324324

325325
#[test]
@@ -361,7 +361,10 @@ mod tests {
361361
let sig1 = signer.sign_request(&params1).unwrap();
362362
let sig2 = signer.sign_request(&params2).unwrap();
363363

364-
assert_ne!(sig1, sig2, "Different hosts should produce different signatures");
364+
assert_ne!(
365+
sig1, sig2,
366+
"Different hosts should produce different signatures"
367+
);
365368
}
366369

367370
#[test]

0 commit comments

Comments
 (0)