[
https://issues.apache.org/jira/browse/KNOX-3465?focusedWorklogId=1041995&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1041995
]
ASF GitHub Bot logged work on KNOX-3465:
----------------------------------------
Author: ASF GitHub Bot
Created on: 16/Sep/26 12:48
Start Date: 16/Sep/26 12:48
Worklog Time Spent: 10m
Work Description: github-actions[bot] commented on PR #1406:
URL: https://github.com/apache/knox/pull/1406#issuecomment-5697675650
## Test Results
5 files 5 suites 31s ⏱️
96 tests 96 ✅ 0 💤 0 ❌
114 runs 114 ✅ 0 💤 0 ❌
Results for commit 24e219c5.
[test-results]:data:application/gzip;base64,H4sIAAqQqmoC/13MSw6CMBSF4a2Qjh30IoXWzZjbV3IjUFPakXHvFgJYHX7/Sc6LeRrdwm6NuDRsyZRO2BwxUZgLr1BclrRuqj9wX7Ixf+VBz1L4GTzS+BNcjCHuJeZ5fQTodhyPdfk+bq4ON9d/JkwTpQLWdq4FZcSAwFGgdtrJQXppQLseJLeg0Cvr2fsDwcU35wIBAAA=
Issue Time Tracking
-------------------
Worklog Id: (was: 1041995)
Time Spent: 0.5h (was: 20m)
> Add Docker-based E2E CI tests for RFC 8693 token exchange — same-subject
> success and delegation gating (KNOX-3455 Bucket 1)
> ---------------------------------------------------------------------------------------------------------------------------
>
> Key: KNOX-3465
> URL: https://issues.apache.org/jira/browse/KNOX-3465
> Project: Apache Knox
> Issue Type: Sub-task
> Components: CI, Tests
> Affects Versions: 3.1.0
> Reporter: Sandor Molnar
> Assignee: Sandor Molnar
> Priority: Major
> Fix For: 3.1.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> h2. Summary
> Add Docker-based E2E CI coverage proving RFC 8693 token exchange works
> end-to-end
> through a running Knox gateway, for the subset of KNOX-3455 acceptance
> criteria that
> is already backed by product code on {{{}master{}}}.
> This is a scoped slice of the KNOX-3455 acceptance-criteria list (the master
> list
> lives on KNOX-3455). It deliberately excludes:
> * the same-subject requested-audience authorization ACs, which depend on the
> unmerged
> KNOX-3461 — tracked separately.
> * the requested-scope ACs, for which no product behavior exists yet (scope
> is not
> parsed, minted, or validated on the exchange path after the
> {{delegation.requested.scope.enabled}} flag was removed in KNOX-3457) —
> tracked
> separately, blocked until requesting scope becomes live.
> h2. Approach
> Reuse the same Docker-based E2E test framework introduced in KNOX-3449 (PR
> #1396),
> running as part of the regular/default CI build — {*}no separate docker
> compose{*}. New
> topology files are added to the CI {{Dockerfile
> }}({{{}.github/workflows/build/Dockerfile{}}}) and auto-discovered
> {{test_*.py}} scripts
> exercise them against the running gateway.
> h2. Acceptance criteria (Bucket 1 — testable on {{master}} today)
> # Same-subject exchange returns the correct {{{}sub{}}}, {{{}aud{}}},
> {{{}iss{}}}, and
> {{issued_token_type}} in the minted token.
> ** NOTE: {{scope}} is intentionally excluded — no minted Knox token carries a
> {{scope}} claim.
> # Permutations of {{no-act}} / {{act}} claim on the subject token all
> succeed.
> ** NOTE: the "requested scopes" permutation axis from the KNOX-3455 master
> list is
> excluded here — scope does not affect the exchange outcome.
> # A delegation exchange with a missing {{audience}} returns HTTP 400 with
> error
> {{invalid_request}} (delegation-enabled topology, audience-required
> enforcement on).
> # A delegation exchange with more than one {{audience}} returns HTTP 400
> with error
> {{invalid_request}} (delegation-enabled topology, max-one enforcement on).
> # A cross-subject exchange against a delegation-{*}disabled{*} topology is
> rejected with
> HTTP 400, error {{{}invalid_request{}}}, message
> {{{}"Delegation is not enabled for this topology"{}}}.
> # A same-subject exchange against a delegation-{*}enabled{*} topology
> succeeds
> (zero-config H2 delegation policy service; no policy seeding required).
> h2. Topologies to add
> * A same-subject / delegation-disabled topology (plain KNOXIDF token
> exchange) used
> for ACs 1, 2, and 5.
> * A delegation-enabled topology with {{{}delegation.server.enabled=true{}}},
> {{{}delegation.requested.subject.enabled=true{}}},
> {{{}delegation.enforce.requested.audience.required=true{}}}, and
> {{{}delegation.enforce.requested.audience.max.one=true{}}}, used for ACs 3,
> 4, and 6.
> Each new topology file must be wired into
> {{.github/workflows/build/Dockerfile}} with
> its own {{ADD}} line, alongside the existing topologies.
> h2. Out of scope (tracked separately)
> * Requested-audience-vs-subject-{{{}aud{}}} authorization (blocked on
> KNOX-3461):
> requested audience must be a subset of the subject token's {{{}aud{}}}, else
> HTTP 400
> {{{}invalid_target{}}}. NOTE: the KNOX-3455 master list phrases these as
> "full token
> prefix" / {{{}invalid_scope{}}}; the shipped design is exact set-containment
> returning
> {{{}invalid_target{}}}.
> * Requested-scope ACs (blocked until requesting scope becomes live):
> "requested scope
> not in subject token's scopes → {{{}invalid_scope{}}}", plus the {{scope}}
> claim in the
> issued token.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)