< Summary

Information
Class: Nabs.Scenarios.DependencyInversionExtensions
Assembly: Nabs.Identity.Web
File(s): /home/runner/work/Nabs/Nabs/src/Nabs.Identity.Web/DependencyInversionExtensions.cs
Tag: 90_14636759620
Line coverage
0%
Covered lines: 0
Uncovered lines: 26
Coverable lines: 26
Total lines: 39
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddServiceAuthentication(...)100%210%

File(s)

/home/runner/work/Nabs/Nabs/src/Nabs.Identity.Web/DependencyInversionExtensions.cs

#LineLine coverage
 1namespace Nabs.Scenarios;
 2
 3public static class DependencyInversionExtensions
 4{
 5    const string _bearerTokenSettingsSection = "BearerTokenSettings";
 6
 7    public static IHostApplicationBuilder AddServiceAuthentication(
 8        this IHostApplicationBuilder builder,
 9        Func<TokenValidatedContext, Task> onTokenValidated)
 10    {
 011        builder.Services
 012            .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
 013            .AddJwtBearer(options =>
 014            {
 015                var bearerTokenSettingsSection = builder.Configuration.GetRequiredSection(_bearerTokenSettingsSection);
 016                var bearerTokenSettings = new BearerTokenSettings();
 017                bearerTokenSettingsSection.Bind(bearerTokenSettings);
 018
 019                options.TokenValidationParameters = new()
 020                {
 021                    ValidateIssuer = true,
 022                    ValidIssuer = bearerTokenSettings.Issuer,
 023                    ValidateAudience = true,
 024                    ValidAudience = bearerTokenSettings.Audience,
 025                    ValidateIssuerSigningKey = true,
 026                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(bearerTokenSettings.Secret)),
 027                    ValidateLifetime = true,
 028                    ClockSkew = TimeSpan.FromMinutes(1)
 029                };
 030
 031                options.Events = new()
 032                {
 033                    OnTokenValidated = onTokenValidated
 034                };
 035            });
 36
 037        return builder;
 38    }
 39}