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
parent 9cba162071
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);
}
let metadata = response
.json::<AuthorizationMetadata>()
.await
.map_err(|e| AuthError::MetadataError(format!("Failed to parse metadata: {}", e)))?;
debug!("metadata: {:?}", metadata);
Ok(Some(metadata))
let body = response.text().await?;
match serde_json::from_str::<AuthorizationMetadata>(&body) {
Ok(metadata) => Ok(Some(metadata)),
Err(err) => {
debug!("Failed to parse metadata for {}: {}", discovery_url, err);
Ok(None) // malformed JSON ⇒ try next candidate
}
}
}
async fn discover_oauth_server_via_resource_metadata(