GetAuthServerMetadata fetches authorization server metadata for the given issuer URL. It tries standard well-known endpoints (OAuth 2.0 and OIDC) and returns the first successful result. Returns (nil, nil) when no metadata endpoints respond (404s), allowing callers to implement fallback logic. Retu
(ctx context.Context, issuerURL string, httpClient *http.Client)
| 21 | // Returns (nil, nil) when no metadata endpoints respond (404s), allowing callers to implement |
| 22 | // fallback logic. Returns an error for any non-client error (network failures, invalid JSON, etc.). |
| 23 | func GetAuthServerMetadata(ctx context.Context, issuerURL string, httpClient *http.Client) (*oauthex.AuthServerMeta, error) { |
| 24 | for _, metadataURL := range authorizationServerMetadataURLs(issuerURL) { |
| 25 | asm, err := oauthex.GetAuthServerMeta(ctx, metadataURL, issuerURL, httpClient) |
| 26 | if err != nil { |
| 27 | return nil, err |
| 28 | } |
| 29 | if asm != nil { |
| 30 | return asm, nil |
| 31 | } |
| 32 | } |
| 33 | return nil, nil |
| 34 | } |
| 35 | |
| 36 | // authorizationServerMetadataURLs returns a list of URLs to try when looking for |
| 37 | // authorization server metadata as mandated by the MCP specification: |
searching dependent graphs…