Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<Project>

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<!--always bump /version.json and /docs/conf.py to <Version>X.Y.Z</Version>to keep nuget, build and document versions in sync-->
<Version>8.0.4</Version>
<IdentityServerVersion>8.0.4</IdentityServerVersion>
<Version>8.0.5-preview-net9</Version>
<IdentityServerVersion>8.0.5-preview-net9</IdentityServerVersion>
<PackageId>HigginsSoft.$(MSBuildProjectName)</PackageId>
<Title>$(MSBuildProjectName)</Title>
<ImplicitUsings>enable</ImplicitUsings>
Expand Down
2 changes: 1 addition & 1 deletion Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
BeforeTargets="ProcessFrameworkReferences">
<ItemGroup>
<KnownILLinkPack Include="@(KnownILLinkPack)"
Condition="'%(TargetFramework)' == 'net8.0'"
Condition="'%(TargetFramework)' == 'net9.0'"
TargetFramework="netstandard2.1"
ILLinkPackVersion="%(KnownILLinkPack.ILLinkPackVersion)" />
</ItemGroup>
Expand Down
48 changes: 24 additions & 24 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
<AspnetVersion>8.0.0</AspnetVersion>
<AspnetMinorVersion>8.0.1</AspnetMinorVersion>
<MicrosoftExtensionsVersion>8.0.0</MicrosoftExtensionsVersion>
<EfVersion>8.0.0</EfVersion>
<RuntimeVersion>8.0.0</RuntimeVersion>
<AspnetVersion>9.0.0</AspnetVersion>
<AspnetMinorVersion>9.0.0</AspnetMinorVersion>
<MicrosoftExtensionsVersion>9.0.0</MicrosoftExtensionsVersion>
<EfVersion>9.0.0</EfVersion>
<RuntimeVersion>9.0.0</RuntimeVersion>
<AspireVersion>8.0.0-preview.2.23619.3</AspireVersion>
<GrpcVersion>2.59.0</GrpcVersion>
<SerilogVersion>8.0.0</SerilogVersion>
Expand All @@ -23,17 +23,17 @@
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="$(AspnetVersion)" />
<PackageVersion Include="AutoMapper" Version="13.0.1 " />
<PackageVersion Include="Azure.Extensions.AspNetCore.DataProtection.Keys" Version="1.1.0" />
<PackageVersion Include="Azure.Identity" Version="1.10.4" />
<PackageVersion Include="Azure.Identity" Version="1.11.4" />
<PackageVersion Include="Azure.Security.KeyVault.Certificates" Version="4.2.0" />
<PackageVersion Include="Bogus" Version="34.0.1" />
<PackageVersion Include="bootstrap" Version="5.3.2" />
<PackageVersion Include="coverlet.collector" Version="6.0.0">
<PackageVersion Include="coverlet.collector" Version="6.0.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageVersion>
<PackageVersion Include="Dapper" Version="2.1.28" />
<PackageVersion Include="EntityFramework" Version="6.4.4" />
<PackageVersion Include="FluentAssertions" Version="6.11.0" />
<PackageVersion Include="FluentAssertions" Version="6.12.2" />
<PackageVersion Include="FluentValidation" Version="11.9.0" />
<PackageVersion Include="FluentValidation.AspNetCore" Version="11.3.0" />
<PackageVersion Include="Google.Protobuf" Version="3.23.4" />
Expand All @@ -47,7 +47,7 @@
<PackageVersion Include="Grpc.Tools" Version="$(GrpcVersion)" PrivateAssets="All" />
<PackageVersion Include="HtmlAgilityPack" Version="1.11.40" />
<PackageVersion Include="Humanizer.Core" Version="2.14.1" />
<PackageVersion Include="IdentityModel" Version="6.2.0" />
<PackageVersion Include="IdentityModel" Version="7.0.0" />
<PackageVersion Include="IdentityModel.OidcClient" Version="5.3.0-preview.1" />
<PackageVersion Include="IdentityModel.AspNetCore" Version="4.3.0" />
<PackageVersion Include="IdentityModel.AspNetCore.AccessTokenValidation" Version="1.0.0-preview.3" />
Expand All @@ -59,7 +59,7 @@
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="3.1.5" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="$(AspnetMinorVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="9.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.Web" Version="$(AspnetMinorVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="$(AspnetVersion)" />
Expand All @@ -71,10 +71,10 @@
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.2.0" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.1.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.1">
<PackageVersion Include="Microsoft.Data.SqlClient" Version="5.1.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
Expand All @@ -95,24 +95,24 @@
<PackageVersion Include="Microsoft.Extensions.Configuration.FileExtensions" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="$(MicrosoftExtensionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="$(AspnetVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(AspnetMinorVersion)" />
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="$(AspireVersion)" />
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery.Yarp" Version="$(AspireVersion)" />
<PackageVersion Include="Microsoft.Identity.Web" Version="1.22.1" />
<PackageVersion Include="Microsoft.Identity.Web.UI" Version="1.16.0" />
<PackageVersion Include="Microsoft.IdentityModel.Logging" Version="7.3.1" />
<PackageVersion Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="7.3.1" />
<PackageVersion Include="Microsoft.IdentityModel.Logging" Version="8.2.1" />
<PackageVersion Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.2.1" />
<PackageVersion Include="Microsoft.jQuery.Unobtrusive.Validation" Version="4.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageVersion Include="Microsoft.OpenApi" Version="1.6.10" />
<PackageVersion Include="Microsoft.Web.LibraryManager.Build" Version="2.1.175" />
<PackageVersion Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.6" />
Expand Down Expand Up @@ -144,7 +144,7 @@
<PackageVersion Include="Refit.Newtonsoft.Json" Version="7.0.0" />
<PackageVersion Include="Sendgrid" Version="9.25.2" />
<PackageVersion Include="Serilog" Version="3.1.1" />
<PackageVersion Include="Serilog.AspNetCore" Version="$(AspnetMinorVersion)" />
<PackageVersion Include="Serilog.AspNetCore" Version="8.0.1" />
<PackageVersion Include="Serilog.Enrichers.Environment" Version="2.3.0" />
<PackageVersion Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="$(SerilogVersion)" />
Expand All @@ -160,17 +160,17 @@
<PackageVersion Include="Swashbuckle.AspNetCore.Swagger" Version="6.5.0" />
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.5.0" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="$(AspnetVersion)" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.3.1" />
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.2.1" />
<PackageVersion Include="System.Reactive" Version="6.0.0" />
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.ServiceModel.Primitives" Version="$(AspnetVersion)" />
<PackageVersion Include="WireMock.Net" Version="1.5.39" />
<PackageVersion Include="xunit" Version="2.6.4" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.6">
<PackageVersion Include="xunit" Version="2.9.2" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageVersion>
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="$(AspnetVersion)" PrivateAssets="All" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="$(AspnetVersion)" PrivateAssets="All" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>
</Project>
6 changes: 5 additions & 1 deletion docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,13 @@ and this project adheres to [Semantic Versioning 2](http://semver.org/).

## [Unreleased] - 2024-02-17

- NET 9.0 Support
- Updated IdentityModel to 7 and updated OpenIdConnect to 8.1.2
- Removed CollectionUtilities.IsNullOrEmpty dependecy because of obselence in new version of Microsoft.IdentityModel.Tokens
- Current templates and quickstarts being added to seperate template and quickstart repositories to continue previous version functionality.
- DotNet tool to install template currently under development.
-


## [8.0.4] - 2024-02-17

Identity Server 8.0.4 is a security release that addresses hundreds of security vulnerabilities in the IdentityServer8 code base. We recommend that you update to this version.
Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"sdk": {
"version": "8.0.100"
"version": "9.0.100"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class ClientDbContextTests : IntegrationTest<ClientDbContextTests, Config
{
public ClientDbContextTests(DatabaseProviderFixture<ConfigurationDbContext> fixture) : base(fixture)
{
foreach (var options in TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<ConfigurationDbContext>)y)).ToList())
foreach (var options in TestDatabaseProviders)
{
using (var context = new ConfigurationDbContext(options, StoreOptions))
context.Database.EnsureCreated();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ static IntegrationTest()

protected IntegrationTest(DatabaseProviderFixture<TDbContext> fixture)
{
fixture.Options = TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<TDbContext>)y)).ToList();
fixture.Options = (TestDatabaseProviders as IEnumerable<DbContextOptions<TDbContext>>).ToList();
fixture.StoreOptions = StoreOptions;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class ClientStoreTests : IntegrationTest<ClientStoreTests, ConfigurationD
{
public ClientStoreTests(DatabaseProviderFixture<ConfigurationDbContext> fixture) : base(fixture)
{
foreach (var options in TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<ConfigurationDbContext>) y)).ToList())
foreach (var options in TestDatabaseProviders)
{
using (var context = new ConfigurationDbContext(options, StoreOptions))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class DeviceFlowStoreTests : IntegrationTest<DeviceFlowStoreTests, Persis

public DeviceFlowStoreTests(DatabaseProviderFixture<PersistedGrantDbContext> fixture) : base(fixture)
{
foreach (var options in TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<PersistedGrantDbContext>)y)).ToList())
foreach (var options in TestDatabaseProviders)
{
using (var context = new PersistedGrantDbContext(options, StoreOptions))
context.Database.EnsureCreated();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class PersistedGrantStoreTests : IntegrationTest<PersistedGrantStoreTests
{
public PersistedGrantStoreTests(DatabaseProviderFixture<PersistedGrantDbContext> fixture) : base(fixture)
{
foreach (var options in TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<PersistedGrantDbContext>)y)).ToList())
foreach (var options in TestDatabaseProviders)
{
using (var context = new PersistedGrantDbContext(options, StoreOptions))
context.Database.EnsureCreated();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class ScopeStoreTests : IntegrationTest<ScopeStoreTests, ConfigurationDbC
{
public ScopeStoreTests(DatabaseProviderFixture<ConfigurationDbContext> fixture) : base(fixture)
{
foreach (var options in TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<ConfigurationDbContext>)y)).ToList())
foreach (var options in TestDatabaseProviders)
{
using (var context = new ConfigurationDbContext(options, StoreOptions))
context.Database.EnsureCreated();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public class TokenCleanupTests : IntegrationTest<TokenCleanupTests, PersistedGra

public TokenCleanupTests(DatabaseProviderFixture<PersistedGrantDbContext> fixture) : base(fixture)
{
foreach (var options in TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<PersistedGrantDbContext>)y)).ToList())
foreach (var options in TestDatabaseProviders)
{
using (var context = new PersistedGrantDbContext(options, StoreOptions))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ static IntegrationTest()

protected IntegrationTest(DatabaseProviderFixture<TDbContext> fixture)
{
fixture.Options = TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<TDbContext>)y)).ToList();
fixture.Options = (TestDatabaseProviders as IEnumerable<DbContextOptions<TDbContext>>).ToList();
fixture.StoreOptions = StoreOptions;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class CorsPolicyServiceTests : IntegrationTest<CorsPolicyServiceTests, Co
{
public CorsPolicyServiceTests(DatabaseProviderFixture<ConfigurationDbContext> fixture) : base(fixture)
{
foreach (var options in TestDatabaseProviders.SelectMany(x => x.Select(y => (DbContextOptions<ConfigurationDbContext>)y)).ToList())
foreach (var options in TestDatabaseProviders)
{
using (var context = new ConfigurationDbContext(options, StoreOptions))
context.Database.EnsureCreated();
Expand Down
6 changes: 3 additions & 3 deletions src/IdentityServer8/src/Extensions/TokenExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public static JwtPayload CreateJwtPayload(this Token token, ISystemClock clock,
var amrClaims = token.Claims.Where(x => x.Type == JwtClaimTypes.AuthenticationMethod).ToArray();
var scopeClaims = token.Claims.Where(x => x.Type == JwtClaimTypes.Scope).ToArray();
var jsonClaims = token.Claims.Where(x => x.ValueType == IdentityServerConstants.ClaimValueTypes.Json).ToList();

// add confirmation claim if present (it's JSON valued)
if (token.Confirmation.IsPresent())
{
Expand Down Expand Up @@ -79,7 +79,7 @@ public static JwtPayload CreateJwtPayload(this Token token, ISystemClock clock,
var amrValues = amrClaims.Select(x => x.Value).Distinct().ToArray();
payload.Add(JwtClaimTypes.AuthenticationMethod, amrValues);
}

// deal with json types
// calling ToArray() to trigger JSON parsing once and so later
// collection identity comparisons work for the anonymous type
Expand Down Expand Up @@ -121,7 +121,7 @@ public static JwtPayload CreateJwtPayload(this Token token, ISystemClock clock,
var newArr = new List<JToken>();
foreach (var arrays in group)
{
var arr = (JArray)arrays.JsonValue;
var arr = (JArray) arrays.JsonValue;
newArr.AddRange(arr);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ where scope.ShowInDiscoveryDocument
}

// custom entries
if (!Options.Discovery.CustomEntries.IsNullOrEmpty())
if (!Options.Discovery.CustomEntries.EnumerableIsNullOrEmpty())
{
foreach ((string key, object value) in Options.Discovery.CustomEntries)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public async Task<SigningCredentials> GetSigningCredentialsAsync(IEnumerable<str
{
if (_signingCredentialStores.Any())
{
if (allowedAlgorithms.IsNullOrEmpty())
if (allowedAlgorithms.EnumerableIsNullOrEmpty())
{
return await _signingCredentialStores.First().GetSigningCredentialsAsync();
}
Expand Down
Loading