Skip to content

Commit b6cbd39

Browse files
authored
fix(oauth): let OAuth discovery skip to next well-known URL candidate on JSON parse error. (#545)
1 parent 9cba162 commit b6cbd39

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

crates/rmcp/src/transport/auth.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -698,12 +698,14 @@ impl AuthorizationManager {
698698
return Ok(None);
699699
}
700700

701-
let metadata = response
702-
.json::<AuthorizationMetadata>()
703-
.await
704-
.map_err(|e| AuthError::MetadataError(format!("Failed to parse metadata: {}", e)))?;
705-
debug!("metadata: {:?}", metadata);
706-
Ok(Some(metadata))
701+
let body = response.text().await?;
702+
match serde_json::from_str::<AuthorizationMetadata>(&body) {
703+
Ok(metadata) => Ok(Some(metadata)),
704+
Err(err) => {
705+
debug!("Failed to parse metadata for {}: {}", discovery_url, err);
706+
Ok(None) // malformed JSON ⇒ try next candidate
707+
}
708+
}
707709
}
708710

709711
async fn discover_oauth_server_via_resource_metadata(

0 commit comments

Comments
 (0)