fix(oauth): let OAuth discovery skip to next well-known URL candidate on JSON parse error. (#545)

This commit is contained in:
Måns 2025-11-18 02:21:25 +01:00 • committed by GitHub
commit b6cbd39503
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -698,12 +698,14 @@ impl AuthorizationManager {
return Ok(None); return Ok(None);
} }
let metadata = response let body = response.text().await?;
.json::<AuthorizationMetadata>() match serde_json::from_str::<AuthorizationMetadata>(&body) {
.await Ok(metadata) => Ok(Some(metadata)),
.map_err(|e| AuthError::MetadataError(format!("Failed to parse metadata: {}", e)))?; Err(err) => {
debug!("metadata: {:?}", metadata); debug!("Failed to parse metadata for {}: {}", discovery_url, err);
Ok(Some(metadata)) Ok(None) // malformed JSON ⇒ try next candidate
}
}
} }
async fn discover_oauth_server_via_resource_metadata( async fn discover_oauth_server_via_resource_metadata(