Bobby Ho
b9e3de8403
fix: make redirect_uris the source of truth for OAuth2 redirect URIs ( #29440 )
...
Fix OAuth2 callback edits retaining stale redirect URIs
- Make `redirect_uris` the sole source of truth, with the first entry as primary and `callback_url` retained as a synchronized, deprecated copy.
- Backfill existing apps and unify all writers. Callback-only admin updates now replace the previous primary while preserving alternate URIs.
- Share redirect URI validation, reject fragments, and add limits of 32 URIs and 2048 bytes per URI.
- Add regression coverage for migration, callback edits, validation, and rejection of removed URIs during authorization and token exchange.
One data migration; no schema or request/response shape changes. Admin API and UI list editing follow separately.
Rollout: Drain old replicas before upgrading; callback edits handled by old code are not reflected on new replicas.
Refs PLAT-619.
2026-09-22 10:49:19 -07:00
..
2026-09-19 00:32:51 +02:00
2026-09-03 13:29:17 -07:00
2026-08-26 11:57:56 -06:00
2026-08-17 14:09:23 -08:00
2026-09-11 01:48:56 +00:00
2026-09-02 19:31:01 +00:00
2026-01-08 15:24:11 +04:00
2026-09-21 11:53:11 +02:00
2026-07-28 13:59:37 +02:00
2026-08-05 13:22:23 -07:00
2026-09-18 15:22:02 +01:00
2026-09-22 12:45:18 +00:00
2026-08-05 13:22:23 -07:00
2026-08-20 11:56:58 +01:00
2026-09-11 16:03:44 +00:00
2026-08-26 11:57:56 -06:00
2026-08-24 13:27:22 +01:00
2025-10-09 14:53:08 +02:00
2025-10-09 14:53:08 +02:00
2026-09-14 20:15:13 +02:00
2026-08-05 13:22:23 -07:00
2026-09-18 15:26:47 +02:00
2026-09-19 00:32:51 +02:00
2026-09-19 00:32:51 +02:00
2026-09-11 01:48:56 +00:00
2026-08-05 13:22:23 -07:00
2026-08-27 10:49:13 +01:00
2026-09-16 20:09:34 +00:00
2026-09-21 20:49:10 +02:00
2026-08-21 23:46:27 -06:00
2026-08-06 08:03:47 -07:00
2026-08-21 23:46:27 -06:00
2026-03-13 14:09:39 +00:00
2026-04-01 13:05:14 +00:00
2026-08-31 09:32:24 -04:00
2026-09-18 15:24:15 +10:00
2026-09-18 12:58:06 +00:00
2026-05-19 09:47:03 -05:00
2026-05-19 09:47:03 -05:00
2026-08-05 13:22:23 -07:00
2026-08-05 13:22:23 -07:00
2026-08-05 13:22:23 -07:00
2026-08-10 13:23:14 -07:00
2026-08-05 13:22:23 -07:00
2026-08-05 13:22:23 -07:00
2026-08-05 13:22:23 -07:00
2026-08-18 12:40:33 +07:00
2026-09-21 15:09:25 +02:00
2026-09-22 11:11:08 +02:00
2026-09-16 21:06:31 +05:00
2026-09-16 21:06:31 +05:00
2026-08-05 13:22:23 -07:00
2026-09-08 17:40:10 -07:00
2026-09-08 17:40:10 -07:00
2026-09-22 10:49:19 -07:00
2026-09-22 10:49:19 -07:00
2026-09-22 10:49:19 -07:00
2026-08-25 11:05:42 -06:00
2026-05-22 20:24:38 +10:00
2026-08-26 11:57:56 -06:00
2026-08-05 13:22:23 -07:00
2026-08-21 11:45:38 -05:00
2026-08-05 13:22:23 -07:00
2026-08-19 08:51:25 -05:00
2026-08-19 08:51:25 -05:00
2026-08-11 11:04:51 -05:00
2026-09-14 20:15:13 +02:00
2026-08-26 13:33:13 +02:00
2026-08-05 13:22:23 -07:00
2026-08-26 11:57:56 -06:00
2026-08-05 13:22:23 -07:00
2026-08-05 13:22:23 -07:00
2025-09-26 11:43:32 +02:00
2026-09-10 08:21:29 -04:00
2026-09-11 18:13:16 -05:00
2026-09-11 18:13:16 -05:00
2026-01-08 15:24:11 +04:00
2026-08-05 13:22:23 -07:00
2026-08-05 13:22:23 -07:00
2026-09-18 10:27:26 -06:00
2026-09-18 10:27:26 -06:00
2026-09-02 09:21:36 -07:00
2026-07-28 09:58:33 -06:00
2026-07-28 09:58:33 -06:00
2026-07-28 09:58:33 -06:00
2026-07-28 09:58:33 -06:00
2026-08-05 13:22:23 -07:00
2026-08-05 13:22:23 -07:00
2026-02-06 15:52:54 +00:00
2026-08-10 08:13:32 -05:00
2025-09-10 11:01:54 -05:00
2026-09-11 01:48:56 +00:00
2026-08-05 13:22:23 -07:00
2026-09-21 11:53:11 +02:00
2026-06-08 15:11:36 +01:00
2026-09-21 11:53:11 +02:00
2026-08-05 13:22:23 -07:00