@@ -16,16 +16,26 @@ internal class AuthorizationServerUtils
1616 CancellationToken cancellationToken = default )
1717 {
1818 using var httpClient = new HttpClient ( ) ;
19-
19+
20+ // Make sure the base URL ends with a slash to correctly append well-known paths
21+ string baseUrl = authorizationServerUrl . ToString ( ) ;
22+ if ( ! baseUrl . EndsWith ( "/" ) )
23+ {
24+ baseUrl += "/" ;
25+ }
26+
2027 // Try OpenID Connect configuration endpoint first, then OAuth Authorization Server Metadata endpoint
21- string [ ] wellKnownEndpoints = {
22- "/ .well-known/openid-configuration",
23- "/ .well-known/oauth-authorization-server"
24- } ;
28+ string [ ] wellKnownPaths = {
29+ " .well-known/openid-configuration",
30+ " .well-known/oauth-authorization-server"
31+ } ;
2532
26- foreach ( var endpoint in wellKnownEndpoints )
33+ foreach ( var path in wellKnownPaths )
2734 {
28- var metadataUrl = new Uri ( authorizationServerUrl , endpoint ) ;
35+ // Simply combine the base URL (now with trailing slash) with the path (without leading slash)
36+ var metadataUrl = new Uri ( baseUrl + path ) ;
37+ Console . WriteLine ( $ "Trying authorization server metadata endpoint: { metadataUrl } ") ;
38+
2939 var metadata = await TryFetchMetadataAsync ( httpClient , metadataUrl , cancellationToken ) ;
3040 if ( metadata != null )
3141 {
@@ -54,13 +64,17 @@ internal class AuthorizationServerUtils
5464 if ( response . IsSuccessStatusCode )
5565 {
5666 var content = await response . Content . ReadAsStreamAsync ( ) ;
57- return await JsonSerializer . DeserializeAsync < AuthorizationServerMetadata > ( content , new JsonSerializerOptions ( ) { WriteIndented = true } ,
67+ return await JsonSerializer . DeserializeAsync < AuthorizationServerMetadata > ( content ,
68+ new JsonSerializerOptions
69+ {
70+ PropertyNameCaseInsensitive = true ,
71+ } ,
5872 cancellationToken ) ;
5973 }
6074 }
61- catch ( Exception )
75+ catch ( Exception ex )
6276 {
63- // Ignore exceptions and return null
77+ Console . WriteLine ( $ "Error fetching metadata from { metadataUrl } : { ex . Message } " ) ;
6478 }
6579
6680 return null ;
0 commit comments