Skip to content

Commit 84c7ae0

Browse files
Address PR review: use millisecond timestamps, remove unnecessary clones
1 parent 431069f commit 84c7ae0

3 files changed

Lines changed: 26 additions & 26 deletions

File tree

crates/common/src/integrations/prebid.rs

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,6 @@ fn expand_trusted_server_bidders(
333333
})
334334
.collect()
335335
}
336-
337336
fn transform_prebid_response(
338337
response: &mut Json,
339338
request_host: &str,
@@ -695,24 +694,22 @@ impl AuctionProvider for PrebidAuctionProvider {
695694
log::info!("Prebid: requesting bids for {} slots", request.slots.len());
696695

697696
// Create signer and compute signature if request signing is enabled
698-
let signer_with_signature =
699-
if let Some(request_signing_config) = &context.settings.request_signing {
700-
if request_signing_config.enabled {
701-
let request_info = RequestInfo::from_request(context.request);
702-
let signer = RequestSigner::from_config()?;
703-
let params = SigningParams::new(
704-
request.id.clone(),
705-
request_info.host,
706-
request_info.scheme,
707-
);
708-
let signature = signer.sign_request(&params)?;
709-
Some((signer, signature, params))
710-
} else {
711-
None
712-
}
697+
let signer_with_signature = if let Some(request_signing_config) =
698+
&context.settings.request_signing
699+
{
700+
if request_signing_config.enabled {
701+
let request_info = RequestInfo::from_request(context.request);
702+
let signer = RequestSigner::from_config()?;
703+
let params =
704+
SigningParams::new(request.id.clone(), request_info.host, request_info.scheme);
705+
let signature = signer.sign_request(&params)?;
706+
Some((signer, signature, params))
713707
} else {
714708
None
715-
};
709+
}
710+
} else {
711+
None
712+
};
716713

717714
// Convert to OpenRTB with all enrichments
718715
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)