Commit a05c3a9
fix: Respect the next link in UIF Entra backend requests (#859)
* fix: respect next link in uif entra backend requests
* fix: bound Entra group pagination, keep all memberships, add HTTP timeouts
Follow-ups to the @odata.nextLink pagination fix in #859:
- Add a 60s request / 15s connect timeout to every user-info-fetcher
outbound HTTP backend (Keycloak, Entra, XFSC AAS) via a shared
utils::http::client_builder(); reqwest otherwise waits indefinitely.
- Keep every directory membership by requesting /memberOf instead of
restricting to microsoft.graph.group, so directory roles and
administrative units are still returned.
- Cap @odata.nextLink following at 100 pages as a backstop against a
cyclic or runaway link, warning if the group list may be truncated.
- Bump the yanked spin 0.9.8 to 0.9.9 (matching #857, which only landed
on release-26.7) so cargo-deny passes, and regenerate Cargo.nix for
the new wiremock dev-dependency.
* fix: address review feedback
- Restructure the Entra group pagination loop guard-first: check the page
cap and warn/break before doing the request, per review.
- Reword the changelog entry for the pagination fix.
---------
Co-authored-by: Lars Francke <jujutsu@lars-francke.de>1 parent 9247836 commit a05c3a9
9 files changed
Lines changed: 535 additions & 21 deletions
File tree
- rust/user-info-fetcher
- src
- backend
- utils
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
25 | 33 | | |
26 | 34 | | |
27 | 35 | | |
| |||
38 | 46 | | |
39 | 47 | | |
40 | 48 | | |
| 49 | + | |
41 | 50 | | |
42 | 51 | | |
43 | 52 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
| |||
0 commit comments