diff --git a/AspNetCore.Security.Jwt/SecurityExtensions.cs b/AspNetCore.Security.Jwt/SecurityExtensions.cs index b7fa697..cc8af5f 100644 --- a/AspNetCore.Security.Jwt/SecurityExtensions.cs +++ b/AspNetCore.Security.Jwt/SecurityExtensions.cs @@ -62,7 +62,7 @@ public static IServiceCollection AddSecurity(this IServiceCollec /// The services collection public static IServiceCollection AddSecurity(this IServiceCollection services, IConfiguration configuration, - Action> addClaims, + Action> addClaims = null, bool addSwaggerSecurity = false) where TAuthenticator : class, IAuthentication where TUserModel : class, IAuthenticationUser @@ -73,7 +73,10 @@ public static IServiceCollection AddSecurity(this IS services.AddSingleton(securitySettings); services.AddSingleton(securitySettings); - services.AddSingleton>>(x => addClaims); + if (addClaims != null) + { + services.AddSingleton>>(x => addClaims); + } services.AddScoped, SecurityService>(); services.AddScoped, TAuthenticator>(); @@ -101,7 +104,7 @@ public static IServiceCollection AddSecurity(this IS /// The services collection public static IServiceCollection AddFacebookSecurity(this IServiceCollection services, IConfiguration configuration, - Action> addClaims, + Action> addClaims = null, bool addSwaggerSecurity = false) { var securitySettings = new FacebookSecuritySettings(); @@ -110,7 +113,10 @@ public static IServiceCollection AddFacebookSecurity(this IServiceCollection ser services.AddSingleton(securitySettings); services.AddSingleton(securitySettings); - services.AddSingleton>>(x => addClaims); + if (addClaims != null) + { + services.AddSingleton>>(x => addClaims); + } services.AddScoped, SecurityService>(); services.AddScoped, FacebookAuthenticator>(); diff --git a/AspNetCore.Security.Jwt/SecurityService.cs b/AspNetCore.Security.Jwt/SecurityService.cs index af66c0a..cf2a034 100644 --- a/AspNetCore.Security.Jwt/SecurityService.cs +++ b/AspNetCore.Security.Jwt/SecurityService.cs @@ -66,7 +66,7 @@ internal class SecurityService : ISecurityService private Action> addClaims; const double DEFAULT_TOKEN_EXPIRY_IN_HOURS = 1; - public SecurityService(BaseSecuritySettings securitySettings, Action> addClaims) + public SecurityService(BaseSecuritySettings securitySettings, Action> addClaims = null) { this.securitySettings = securitySettings; this.addClaims = addClaims; @@ -81,14 +81,20 @@ public string GenerateToken(TUserModel user) var builder = new IdTypeBuilder(user); - this.addClaims(builder); + if (addClaims != null) + { + this.addClaims(builder); + } var claims = new List { new Claim(JwtRegisteredClaimNames.Exp, $"{new DateTimeOffset(DateTime.Now.AddHours(this.securitySettings.TokenExpiryInHours ?? DEFAULT_TOKEN_EXPIRY_IN_HOURS)).ToUnixTimeSeconds()}"), new Claim(JwtRegisteredClaimNames.Nbf, $"{new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()}") }; - claims.AddRange(builder.ToClaims()); + if (addClaims != null) + { + claims.AddRange(builder.ToClaims()); + } var token = new JwtSecurityToken( issuer: this.securitySettings.Issuer,