From 944256940faa88ee6c20903d2fbbc8586f77960d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szak=C3=A1ts=20Alp=C3=A1r=20Zsolt?= Date: Sun, 17 Aug 2025 00:16:16 +0200 Subject: [PATCH] Fix --- Source/ProofOfConcept/Program.cs | 3 +++ .../TeslaOIDCConfigurationManager.cs | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Source/ProofOfConcept/Program.cs b/Source/ProofOfConcept/Program.cs index 7412f40..2282c7f 100644 --- a/Source/ProofOfConcept/Program.cs +++ b/Source/ProofOfConcept/Program.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.HttpOverrides; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Diagnostics.HealthChecks; +using Microsoft.IdentityModel.Protocols; using Microsoft.IdentityModel.Protocols.OpenIdConnect; using ProofOfConcept.Models; using ProofOfConcept.Services; @@ -86,6 +87,8 @@ builder.Services o.Configuration.ClaimsSupported.Add("sub"); o.Configuration.ClaimsSupported.Add("aud"); + o.ConfigurationManager = + // Standard OIDC web app settings o.ResponseType = OpenIdConnectResponseType.Code; o.UsePkce = true; diff --git a/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs b/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs index 1a1d67a..99df482 100644 --- a/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs +++ b/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs @@ -15,7 +15,8 @@ public sealed class TeslaOIDCConfigurationManager : IConfigurationManager(metadataAddress, new OpenIdConnectConfigurationRetriever()); + OpenIdConnectConfigurationRetriever openIDConfigurationRetriever = new OpenIdConnectConfigurationRetriever(); + _inner = new ConfigurationManager(metadataAddress, new OpenIdConnectConfigurationRetriever(), new HttpDocumentRetriever()); } public async Task GetConfigurationAsync(CancellationToken cancel) @@ -33,4 +34,20 @@ public sealed class TeslaOIDCConfigurationManager : IConfigurationManager _inner.RequestRefresh(); +} + +public class TeslaDocumentRetriever : IDocumentRetriever +{ + private readonly HttpDocumentRetriever httpDocumentRetriever; + + public TeslaDocumentRetriever(HttpDocumentRetriever httpDocumentRetriever) + { + this.httpDocumentRetriever = httpDocumentRetriever; + } + + public async Task GetDocumentAsync(string address, CancellationToken cancel) + { + string document = await this.httpDocumentRetriever.GetDocumentAsync(address, cancel); + return document.Replace("https://fleet-auth.tesla.com/oauth2/v3", "https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3"); + } } \ No newline at end of file