stevenlee-oai
9be8d6e1c3
Harden MCP OAuth callback handling ( #40691 )
...
## Why
MCP servers can share an OAuth callback URL. Without a validated issuer or a
server-specific callback path, an authorization response could be associated
with the wrong server.
## What changed
- Use stable callbacks when authorization metadata advertises issuer-bound
responses, and validate the returned issuer before exchanging the code.
- Retain server-specific callback IDs for providers without issuer support,
including fallback to the global or default callback for legacy registered
clients.
- Persist registered callback URLs for MCP servers and plugins, and insert the
active listener port into portless loopback redirects.
## Testing
Add coverage for issuer validation, callback-mode discovery, registered and
legacy clients, plugin OAuth, CLI persistence, and loopback listener ports.
GitOrigin-RevId: 2878c92e237fc17fd3def0bd2e1cce3e104a3db8
2026-08-25 20:26:23 +00:00
..
2026-08-21 03:31:56 +00:00
2026-08-25 19:54:52 +00:00
2026-08-23 06:10:44 +00:00
2026-08-25 05:16:45 +00:00
2026-08-20 17:46:05 +00:00
2026-08-24 18:22:13 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-24 19:52:27 +00:00
2026-08-13 00:00:16 +00:00
2026-08-24 20:25:26 +00:00
2026-08-17 11:44:56 +00:00
2026-07-09 03:40:08 +00:00
2026-08-24 18:22:13 +00:00
2026-08-25 02:38:22 +00:00
2026-08-21 20:15:23 +00:00
2026-08-13 00:00:16 +00:00
2026-08-23 17:02:21 +00:00
2026-08-20 08:10:08 +00:00
2026-08-18 07:32:03 +00:00
2026-08-20 17:46:05 +00:00
2026-08-25 19:54:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-25 17:41:22 +00:00
2026-08-24 18:22:13 +00:00
2026-08-23 06:10:44 +00:00
2026-08-25 19:54:52 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 18:29:35 +00:00
2026-08-25 05:16:45 +00:00
2026-06-18 14:09:38 +02:00
2026-08-17 21:49:30 +00:00
2026-08-24 21:39:48 +00:00
2026-08-20 05:29:12 +00:00
2026-08-21 21:12:43 +00:00
2026-08-21 21:51:12 +00:00
2026-08-21 21:51:12 +00:00
2026-08-25 05:16:45 +00:00
2026-08-21 21:22:35 +00:00
2026-08-25 05:16:45 +00:00
2026-08-18 22:10:43 +00:00
2026-08-20 18:29:35 +00:00
2026-08-23 06:10:44 +00:00
2026-08-13 00:00:16 +00:00
2026-08-25 01:27:18 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-06-15 21:53:47 -07:00
2026-08-13 00:00:16 +00:00
2026-08-21 21:17:42 +00:00
2026-08-04 15:23:43 +00:00
2026-08-25 20:26:23 +00:00
2026-08-22 05:54:43 +00:00
2026-08-25 16:20:38 +00:00
2026-08-20 18:17:28 +00:00
2026-08-25 19:54:52 +00:00
2026-05-18 21:03:51 -07:00
2026-08-13 00:00:16 +00:00
2026-08-23 20:14:26 +00:00
2026-08-17 10:01:59 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-14 18:26:20 +00:00
2026-08-20 11:57:32 +00:00
2026-08-20 18:29:35 +00:00
2026-08-25 05:16:45 +00:00
2026-08-20 08:10:08 +00:00
2026-08-20 19:09:04 +00:00
2026-06-08 13:55:15 -07:00
2026-08-25 19:54:52 +00:00
2026-08-17 11:44:56 +00:00
2026-08-17 11:44:56 +00:00
2026-08-24 14:37:48 +00:00
2026-07-14 10:37:23 +00:00
2026-08-14 19:07:15 +00:00
2026-07-22 20:23:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-25 18:11:04 +00:00
2026-08-01 01:17:26 +00:00
2026-08-25 05:16:45 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 17:54:42 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-23 23:52:07 +00:00
2026-07-22 00:50:28 +00:00
2026-08-25 19:54:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 23:13:37 +00:00
2026-08-25 17:41:22 +00:00
2026-08-25 05:16:45 +00:00
2026-08-23 06:10:44 +00:00
2026-07-23 19:19:35 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 05:42:20 +00:00
2026-08-25 17:20:37 +00:00
2026-08-25 17:27:04 +00:00
2026-08-21 15:24:56 +00:00
2026-08-20 17:46:05 +00:00
2026-08-25 16:00:02 +00:00
2026-08-23 06:10:44 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-25 17:41:22 +00:00
2026-08-25 17:44:50 +00:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:00:16 +00:00
2026-08-25 13:59:52 +00:00
2026-08-23 23:38:12 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 19:19:41 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-20 17:46:05 +00:00
2026-08-25 19:54:52 +00:00
2026-08-20 17:46:05 +00:00
2026-08-24 22:51:36 +00:00
2026-08-20 19:43:54 +00:00
2026-08-25 05:16:45 +00:00
2026-08-10 19:26:52 +00:00
2026-08-13 00:00:16 +00:00
2026-08-20 17:46:05 +00:00
2026-08-23 06:10:44 +00:00
2026-08-14 01:23:59 +00:00
2026-08-13 00:00:16 +00:00
2026-08-21 03:31:56 +00:00
2026-08-24 17:29:21 +00:00
2026-08-20 18:29:35 +00:00
2026-08-20 06:29:32 +00:00