mirror of
https://github.com/openai/codex.git
synced 2026-11-13 22:47:20 +00:00
Isolate MCP OAuth credentials by environment (#36310)
## Why MCP servers running in an executor must not reuse host-owned OAuth credentials, even when they have the same configured server name and URL. ## What changed - Derive environment-scoped credential names for executor-owned MCP servers and use them consistently for login, logout, authentication, and connection setup. - Mark executor-owned entries in the file credential store and fail closed when loading or saving an entry could cross the host/executor boundary. - Preserve compatibility with existing local OAuth credentials, including local server names that overlap the new reserved prefixes. ## Testing - Extend the executor MCP integration test to verify that executor requests use the executor token, never send the host token, and persist both credentials separately. GitOrigin-RevId: 4fc92d0533b0fe2e0df34f6d47b81e3d20d07807
This commit is contained in:
1 parent
5e8b22488f
commit
164b3bfeab
12 files changed
+194
-39
No files matched your search
@@ -1008,6 +1008,7 @@ async fn make_rmcp_client(
|
||||
let resolved_environment =
|
||||
resolved_environment.map_err(|err| StartupOutcomeError::from(anyhow!(err)))?;
|
||||
let is_local_environment = config.is_local_environment();
|
||||
let oauth_credential_name = config.oauth_credential_name(server_name);
|
||||
let McpServerConfig { transport, .. } = config;
|
||||
|
||||
match transport {
|
||||
@@ -1073,7 +1074,7 @@ async fn make_rmcp_client(
|
||||
Err(error) => return Err(error.into()),
|
||||
};
|
||||
RmcpClient::new_streamable_http_client_with_protocol_mode(
|
||||
server_name,
|
||||
oauth_credential_name.as_ref(),
|
||||
&url,
|
||||
resolved_bearer_token,
|
||||
http_headers,
|
||||
|
||||
Reference in new issue
Block a user