in Source/ApiGWs/Tailwind.Traders.WebBff/Startup.cs [37:88]
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClientServices();
services.Configure<AppSettings>(Configuration);
services.AddTransient<IUserService>(_ => new UserServiceClient(
EndpointConfiguration.BasicHttpBinding_IUserService,
new EndpointAddress(Configuration["RegistrationUsersEndpoint"])));
services.AddTransient<IRegisterService, RegisterService>();
services.AddSwagger();
services.AddApiVersioning(options =>
{
options.ReportApiVersions = true;
options.DefaultApiVersion = new ApiVersion(1, 0);
options.ApiVersionReader = new QueryStringApiVersionReader();
});
var appInsightsIK = Configuration["ApplicationInsights:InstrumentationKey"];
if (!string.IsNullOrEmpty(appInsightsIK))
{
services.AddApplicationInsightsTelemetry(appInsightsIK);
}
services.AddControllers()
.SetCompatibilityVersion(CompatibilityVersion.Latest)
.AddNewtonsoftJson()
.Services
.AddHealthChecks(Configuration)
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
if (UseBc2.GetUseB2CBoolean(Configuration))
{
options.Authority = Configuration["Authority"];
options.TokenValidationParameters.ValidateAudience = false;
options.RequireHttpsMetadata = false;
}
else
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = false,
ValidIssuer = Configuration["Issuer"],
ValidateLifetime = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SecurityKey"]))
};
}
});
}