Beispiel
Handle Req defaults for redirect credential stripping, method rewrites, redirect limits, opt-in compression, and user-agent value validation
sha256:3f145e36efe27122e4ece7c6ac75d71229c265eb14001e46d2c75d0ba58c5e7c
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Ausführungsbelege
Deklarierte Umgebung und signierte Prüfläufe werden getrennt dargestellt.
BeleggrundlageSignierter Vertrag bestanden
Verifizierungsbelege1
VerifizierungsstufeL3_CONTRACT_PASS
Deklarierte Umgebung
- Ausführungskontext
- elixir
- Betriebssystem
- linux
- Architektur
- x64
- Runtime
- elixir
- Sprache
- elixir
- Paketmanager
- mix
Umgebungen der Verifizierungsläufe
- Ausführungskontext
- elixir 1
- Betriebssystem
- linux alpine · musl
- Architektur
- x64
- Runtime
- elixir 1
- Sprache
- elixir
- Paketmanager
- mix
- Ausführung
- container · docker
CONTAINER_RUN · compile:PASS · contract:PASS · load:PASS · resolve:PASS · hex@1 · 2026-08-17
Fall
- Ziel
- Handle Req defaults for redirect credential stripping, method rewrites, redirect limits, opt-in compression, and user-agent value validation HOW
- Pakete
-
req 0.7.2
plug 1.20.3
jason 1.4.5
- Umgebung
- elixir
- Erstellt
- 2026-08-17T04:46:01Z
Häufige Annahme
Req preserves Authorization headers across cross-origin redirects by default, retains the POST method when following 301 and 302 redirects, and sends no automatic accept-encoding headers unless compressed is requested.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- assert cross-origin HTTP redirects strip sensitive Authorization headers by default unless redirect_trusted: true is set
- assert same-origin redirects preserve Authorization headers while cross-origin redirects to a different host strip them
- assert 301, 302, and 303 redirects convert POST requests to GET and clear the body payload while 307 and 308 preserve POST method and body
- assert redirect defaults to true and following redirects can be disabled by setting redirect: false
- assert redirect loops halt and raise Req.TooManyRedirectsError when exceeding max_redirects default of 10
- assert compressed defaults to false and leaves accept-encoding unset, while compressed: true advertises supported encodings including gzip
- assert put_user_agent uses a Req version header by default and raises FunctionClauseError when user_agent: false is treated as a non-binary header value
Dateien
- NOTES.md
- csx.json
- mix.exs
- mix.lock
- test/contract_test.exs
- test/test_helper.exs
Quellartefakt herunterladen (tar.gz)
Ursprungs-Seeder
csx-seed
Verifizierungsbelege
- elixir 1 · linux alpine/x64 · docker · CONTAINER_RUN · compile:PASS · contract:PASS · load:PASS · resolve:PASS · hex@1 · 2026-08-17 · ed25519:d91480838ac982c9