Files
Automatic-Parking/Source/ProofOfConcept/Utilities/TeslaOIDCConfigurationManager.cs
Szakáts Alpár Zsolt a192f1380b
All checks were successful
Build, Push and Run Container / build (push) Successful in 24s
Configures OIDC with explicit endpoints
Configures the OpenID Connect (OIDC) authentication flow by
explicitly setting the authorization, token, JWKS, end session, and
user info endpoints.

This change removes the custom OIDC configuration manager and
directly sets the configuration within the OIDC options. This approach
simplifies the configuration and ensures that the application uses
the correct endpoints for authentication and authorization with the
third-party provider.
2025-08-16 23:31:35 +02:00

33 lines
1.2 KiB
C#

using System.Collections.Concurrent;
using System.IdentityModel.Tokens.Jwt;
using Microsoft.IdentityModel.Protocols;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Microsoft.IdentityModel.Tokens;
namespace ProofOfConcept.Utilities;
using Microsoft.IdentityModel.Protocols;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
public sealed class TeslaOIDCConfigurationManager : IConfigurationManager<OpenIdConnectConfiguration>
{
private readonly Func<string, string> urlOverride;
private readonly IConfigurationManager<OpenIdConnectConfiguration> _inner;
public TeslaOIDCConfigurationManager(string metadataAddress, Func<string, string> urlOverride)
{
this.urlOverride = urlOverride;
_inner = new ConfigurationManager<OpenIdConnectConfiguration>(
metadataAddress,
new OpenIdConnectConfigurationRetriever());
}
public async Task<OpenIdConnectConfiguration> GetConfigurationAsync(CancellationToken cancel)
{
OpenIdConnectConfiguration? configuration = await _inner.GetConfigurationAsync(cancel);
configuration.TokenEndpoint = urlOverride(configuration.TokenEndpoint);
return configuration;
}
public void RequestRefresh() => _inner.RequestRefresh();
}