Skip to content

fix: validate Azure delegation key coverage - #867

Draft
RanaPriyansh wants to merge 1 commit into
apache:mainfrom
RanaPriyansh:fix/807-azure-delegation-validity
Draft

RanaPriyansh wants to merge 1 commit into
apache:mainfrom
RanaPriyansh:fix/807-azure-delegation-validity

Conversation

@RanaPriyansh

Copy link
Copy Markdown

Summary

Azure can grant a user delegation key whose validity does not cover a requested signed URL. The fixed cache window can also fetch another key while a cached key still covers the signed URL.

This change makes the requested key validity configurable, with a 12-hour default. A longer signed URL extends the key request. The cache reuses a key only when Azure's returned SignedStart and SignedExpiry cover the serialized SAS interval. It rejects an invalid granted interval before caching the key.

Addresses #807.

Validation

  • cargo test --features azure --lib — 175 passed, four ignored.
  • cargo clippy --features azure -- -D warnings
  • cargo clippy --no-default-features --features azure-base -- -D warnings
  • cargo clippy --all-features --all-targets -- -D warnings
  • cargo fmt --all -- --check
  • git diff --check

Mock Azure responses test public signed URLs, cache reuse, refresh, concurrent signers, failed and canceled refresh, granted intervals, and the seven-day limit. The public tests compare SAS timestamps with the granted key interval and reject an insufficient grant. No live Azure account was used.

Codex used.

@alamb
alamb marked this pull request as draft October 16, 2026 21:21
@alamb

alamb commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Marking as draft per #873 (comment) so i can find the PRs that need attention. Thank you

@alamb alamb added the Prolific Author author has opened PRs in many repositories in the last month label Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Prolific Author author has opened PRs in many repositories in the last month

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants