Skip to content

Commit b86524d

Browse files
author
Chris Young
committed
Added jwt options back
1 parent 6ecced8 commit b86524d

File tree

7 files changed

+31
-15
lines changed

7 files changed

+31
-15
lines changed

src/ArchitectNow.Web.Mongo/StartupSample.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
using Microsoft.Extensions.Configuration;
1616
using Microsoft.Extensions.DependencyInjection;
1717
using Microsoft.Extensions.Logging;
18-
using Microsoft.IdentityModel.Tokens;
1918
using NJsonSchema;
2019
using Serilog;
2120

@@ -93,7 +92,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services)
9392
return provider;
9493
}
9594

96-
private SecurityKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
95+
private JwtSigningKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
9796
{
9897
var keyString = issuerOptions.Audience;
9998
var keyBytes = Encoding.Unicode.GetBytes(keyString);

src/ArchitectNow.Web.Redis/StartupSample.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
using Microsoft.Extensions.Configuration;
1515
using Microsoft.Extensions.DependencyInjection;
1616
using Microsoft.Extensions.Logging;
17-
using Microsoft.IdentityModel.Tokens;
1817
using NJsonSchema;
1918
using Serilog;
2019

@@ -91,7 +90,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services)
9190
return provider;
9291
}
9392

94-
private SecurityKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
93+
private JwtSigningKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
9594
{
9695
var keyString = issuerOptions.Audience;
9796
var keyBytes = Encoding.Unicode.GetBytes(keyString);

src/ArchitectNow.Web.Sql/StartupSample.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
using Microsoft.Extensions.Configuration;
1515
using Microsoft.Extensions.DependencyInjection;
1616
using Microsoft.Extensions.Logging;
17-
using Microsoft.IdentityModel.Tokens;
1817
using NJsonSchema;
1918
using Serilog;
2019

@@ -91,7 +90,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services)
9190
return provider;
9291
}
9392

94-
private SecurityKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
93+
private JwtSigningKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
9594
{
9695
var keyString = issuerOptions.Audience;
9796
var keyBytes = Encoding.Unicode.GetBytes(keyString);

src/ArchitectNow.Web/Configuration/JwtExtensions.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,14 @@ namespace ArchitectNow.Web.Configuration
1010
public static class JwtExtensions
1111
{
1212
public static void ConfigureJwt(this IServiceCollection services, IConfiguration configurationRoot,
13-
Func<JwtIssuerOptions, SecurityKey> signingKey, JwtBearerEvents jwtBearerEvents = null)
13+
Func<JwtIssuerOptions, JwtSigningKey> signingKey, JwtBearerEvents jwtBearerEvents = null)
1414
{
1515
var jwtAppSettingOptions = configurationRoot.GetSection(nameof(JwtIssuerOptions)).Get<JwtIssuerOptions>();
1616

17+
var issuerSigningKey = signingKey(jwtAppSettingOptions);
18+
19+
services.AddSingleton(issuerSigningKey);
20+
1721
var tokenValidationParameters = new TokenValidationParameters
1822
{
1923
ValidateIssuer = true,
@@ -23,8 +27,8 @@ public static void ConfigureJwt(this IServiceCollection services, IConfiguration
2327
ValidAudience = jwtAppSettingOptions.Audience,
2428

2529
ValidateIssuerSigningKey = true,
26-
IssuerSigningKey = signingKey(jwtAppSettingOptions),
27-
30+
IssuerSigningKey = issuerSigningKey,
31+
2832
RequireExpirationTime = true,
2933
ValidateLifetime = true,
3034

src/ArchitectNow.Web/Configuration/WebApiExtensions.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using ArchitectNow.Web.Filters;
22
using ArchitectNow.Web.Models;
33
using FluentValidation.AspNetCore;
4-
using Microsoft.AspNetCore.Authorization;
5-
using Microsoft.AspNetCore.Mvc.Authorization;
64
using Microsoft.Extensions.DependencyInjection;
75
using Newtonsoft.Json;
86
using Newtonsoft.Json.Converters;

src/ArchitectNow.Web/StartupSample.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
using Microsoft.Extensions.Logging;
1515
using Serilog;
1616
using SwaggerOptions = ArchitectNow.Web.Models.SwaggerOptions;
17-
using Microsoft.IdentityModel.Tokens;
1817
using NJsonSchema;
1918

2019
namespace ArchitectNow.Web
@@ -86,7 +85,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services)
8685
return provider;
8786
}
8887

89-
private SecurityKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
88+
private JwtSigningKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
9089
{
9190
var keyString = issuerOptions.Audience;
9291
var keyBytes = Encoding.Unicode.GetBytes(keyString);

src/ArchitectNow.Web/WebModule.cs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
using ArchitectNow.Web.Services;
44
using Autofac;
55
using Microsoft.AspNetCore.Http;
6-
using Microsoft.AspNetCore.Mvc;
76
using Microsoft.Extensions.Configuration;
7+
using Microsoft.Extensions.Logging;
88
using Microsoft.Extensions.Options;
99
using Microsoft.IdentityModel.Tokens;
1010

@@ -19,7 +19,25 @@ protected override void Load(ContainerBuilder builder)
1919

2020
builder.RegisterType<HttpContextAccessor>().As<IHttpContextAccessor>().SingleInstance();
2121

22-
builder.RegisterType<GlobalExceptionFilter>().AsSelf().InstancePerLifetimeScope();
22+
builder.RegisterType<GlobalExceptionFilter>().AsSelf().InstancePerLifetimeScope();
23+
24+
builder.Register(context =>
25+
{
26+
var configuration = context.Resolve<IConfiguration>();
27+
var issuerOptions = configuration.GetSection("jwtIssuerOptions").Get<JwtIssuerOptions>();
28+
29+
var key = context.Resolve<JwtSigningKey>();
30+
if (key == null)
31+
{
32+
context.Resolve<ILogger<WebModule>>().LogWarning("JwtSigningKey is not defined");
33+
}
34+
else
35+
{
36+
issuerOptions.SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);
37+
}
38+
39+
return new OptionsWrapper<JwtIssuerOptions>(issuerOptions);
40+
}).As<IOptions<JwtIssuerOptions>>().InstancePerLifetimeScope();
2341
}
2442
}
2543
}

0 commit comments

Comments
 (0)