-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
27 lines (22 loc) · 1.13 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using IdentityProxy.Api;
using IdentityProxy.Api.Identity;
using IdentityProxy.Api.Identity.Models;
var builder = WebApplication.CreateSlimBuilder(args);
// Register some services
builder.Services.AddMemoryCache();
builder.Services.AddSingleton<CertificateStore>();
builder.Services.AddSingleton(TimeProvider.System);
var authority = builder.Configuration.GetValue<string>("IDENTITY_AUTHORITY") ?? throw new AppConfigurationException("IDENTITY_AUTHORITY is not set");
builder.Services.AddSingleton(new IdentityServiceSettings { Authority = authority });
// This will add the IdentityService to the DI container and configure the HttpClient
builder.Services.AddHttpClient<IdentityService>();
// Json serialization in AOT project
builder.Services.ConfigureHttpJsonOptions(options =>
{
options.SerializerOptions.TypeInfoResolverChain.Insert(0, IdentityJsonSerializerContext.Default);
});
var app = builder.Build();
// Add the identity endpoints
app.MapIdentityEndpoints(externalUrl: app.Configuration.GetValue<string>("EXTERNAL_URL"));
app.Logger.LogInformation("IdentityProxy will proxy authority: {Authority}", authority);
await app.RunAsync();