diff --git a/src/IdentityServer/Validation/Default/LicenseValidator.cs b/src/IdentityServer/Validation/Default/LicenseValidator.cs index 005510e96..188c372fe 100644 --- a/src/IdentityServer/Validation/Default/LicenseValidator.cs +++ b/src/IdentityServer/Validation/Default/LicenseValidator.cs @@ -55,14 +55,19 @@ public static void ValidateLicense() if (_license == null) { var message = "You do not have a valid license key for Duende IdentityServer. " + - "This is allowed for development and testing scenarios. " + - "If you are running in production you are required to have a licensed version. Please start a conversation with us: https://duendesoftware.com/contact"; + "This is allowed for development and testing scenarios. " + + "If you are running in production you are required to have a licensed version. Please start a conversation with us: https://duendesoftware.com/contact"; _logger.LogWarning(message); return; } else { + if (_logger.IsEnabled(LogLevel.Debug)) + { + _logger.LogDebug("The validated licence key details: {@license}", _license); + } + if (_license.Expiration.HasValue) { var diff = DateTime.UtcNow.Date.Subtract(_license.Expiration.Value.Date).TotalDays; @@ -94,16 +99,11 @@ public static void ValidateLicense() { if (_license.Expiration.HasValue) { - _logger.LogInformation("You have a valid license key for Duende IdentityServer for use at {licenseCompany}. The license expires on {licenseExpiration}.", _license.CompanyName, _license.Expiration.Value.ToLongDateString()); + _logger.LogInformation("You have a valid license key for Duende IdentityServer {edition} edition for use at {licenseCompany}. The license expires on {licenseExpiration}.", _license.Edition, _license.CompanyName, _license.Expiration.Value.ToLongDateString()); } else { - _logger.LogInformation("You have a valid license key for Duende IdentityServer for use at {licenseCompany}.", _license.CompanyName); - } - - if (_logger.IsEnabled(LogLevel.Debug)) - { - _logger.LogDebug("The validated licence details: {@license}", _license); + _logger.LogInformation("You have a valid license key for Duende IdentityServer {edition} edition for use at {licenseCompany}.", _license.Edition, _license.CompanyName); } } } @@ -213,7 +213,7 @@ public License(ClaimsPrincipal claims) } var edition = claims.FindFirst("edition")?.Value; - if (!Enum.TryParse(edition, true, out var editionValue)) + if (!Enum.TryParse(edition, true, out var editionValue)) { throw new Exception($"Invalid edition in licence: '{edition}'"); } @@ -222,9 +222,9 @@ public License(ClaimsPrincipal claims) KeyManagement = claims.HasClaim("feature", "key_management"); switch (Edition) { - case LienceEdition.Enterprise: - case LienceEdition.Business: - case LienceEdition.Community: + case LicenseEdition.Enterprise: + case LicenseEdition.Business: + case LicenseEdition.Community: KeyManagement = true; break; } @@ -232,8 +232,8 @@ public License(ClaimsPrincipal claims) ResourceIsolation = claims.HasClaim("feature", "resource_isolation"); switch (Edition) { - case LienceEdition.Enterprise: - case LienceEdition.Community: + case LicenseEdition.Enterprise: + case LicenseEdition.Community: ResourceIsolation = true; break; } @@ -252,13 +252,13 @@ public License(ClaimsPrincipal claims) { switch (Edition) { - case LienceEdition.Business: + case LicenseEdition.Business: ClientLimit = 15; break; - case LienceEdition.Starter: + case LicenseEdition.Starter: ClientLimit = 5; break; - case LienceEdition.Community: + case LicenseEdition.Community: ClientLimit = 4; break; } @@ -287,11 +287,12 @@ public License(ClaimsPrincipal claims) public DateTime? Expiration { get; set; } - public LienceEdition Edition { get; set; } - public bool IsEnterprise => Edition == LienceEdition.Enterprise; - public bool IsBusiness => Edition == LienceEdition.Business; - public bool IsStarter => Edition == LienceEdition.Starter; - public bool IsCommunity => Edition == LienceEdition.Community; + public LicenseEdition Edition { get; set; } + + internal bool IsEnterprise => Edition == LicenseEdition.Enterprise; + internal bool IsBusiness => Edition == LicenseEdition.Business; + internal bool IsStarter => Edition == LicenseEdition.Starter; + internal bool IsCommunity => Edition == LicenseEdition.Community; public int? ClientLimit { get; set; } public int? IssuerLimit { get; set; } @@ -299,7 +300,7 @@ public License(ClaimsPrincipal claims) public bool KeyManagement { get; set; } public bool ResourceIsolation { get; set; } - public enum LienceEdition + public enum LicenseEdition { Enterprise, Business, diff --git a/test/IdentityServer.UnitTests/Validation/LicenseValidatorTests.cs b/test/IdentityServer.UnitTests/Validation/LicenseValidatorTests.cs index 8e97461fb..dd02899ee 100644 --- a/test/IdentityServer.UnitTests/Validation/LicenseValidatorTests.cs +++ b/test/IdentityServer.UnitTests/Validation/LicenseValidatorTests.cs @@ -50,7 +50,7 @@ public void license_should_parse_edition_and_use_default_values() { { var subject = new License(new Claim("edition", "enterprise")); - subject.Edition.Should().Be(License.LienceEdition.Enterprise); + subject.Edition.Should().Be(License.LicenseEdition.Enterprise); subject.IsEnterprise.Should().BeTrue(); subject.ClientLimit.Should().BeNull(); subject.IssuerLimit.Should().BeNull(); @@ -59,7 +59,7 @@ public void license_should_parse_edition_and_use_default_values() } { var subject = new License(new Claim("edition", "business")); - subject.Edition.Should().Be(License.LienceEdition.Business); + subject.Edition.Should().Be(License.LicenseEdition.Business); subject.IsBusiness.Should().BeTrue(); subject.ClientLimit.Should().Be(15); subject.IssuerLimit.Should().Be(1); @@ -68,7 +68,7 @@ public void license_should_parse_edition_and_use_default_values() } { var subject = new License(new Claim("edition", "starter")); - subject.Edition.Should().Be(License.LienceEdition.Starter); + subject.Edition.Should().Be(License.LicenseEdition.Starter); subject.IsStarter.Should().BeTrue(); subject.ClientLimit.Should().Be(5); subject.IssuerLimit.Should().Be(1); @@ -77,7 +77,7 @@ public void license_should_parse_edition_and_use_default_values() } { var subject = new License(new Claim("edition", "community")); - subject.Edition.Should().Be(License.LienceEdition.Community); + subject.Edition.Should().Be(License.LicenseEdition.Community); subject.IsCommunity.Should().BeTrue(); subject.ClientLimit.Should().Be(4); subject.IssuerLimit.Should().BeNull();