diff --git a/.nuget/nuget.config b/.nuget/nuget.config deleted file mode 100644 index da0fdaeeb..000000000 --- a/.nuget/nuget.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/Squidex.Core/project.json b/src/Squidex.Core/project.json index dcee19614..001945ae6 100644 --- a/src/Squidex.Core/project.json +++ b/src/Squidex.Core/project.json @@ -1,9 +1,9 @@ { "dependencies": { - "NETStandard.Library": "1.6.0", "NodaTime": "2.0.0-alpha20160729", "Squidex.Infrastructure": "1.0.0-*", - "protobuf-net": "2.1.0" + "protobuf-net": "2.1.0", + "NETStandard.Library": "1.6.1" }, "frameworks": { "netcoreapp1.0": { diff --git a/src/Squidex.Events/project.json b/src/Squidex.Events/project.json index 0a95a847a..8f2771316 100644 --- a/src/Squidex.Events/project.json +++ b/src/Squidex.Events/project.json @@ -2,7 +2,7 @@ "version": "1.0.0-*", "dependencies": { - "NETStandard.Library": "1.6.0", + "NETStandard.Library": "1.6.1", "NodaTime": "2.0.0-alpha20160729", "Squidex.Core": "1.0.0-*", "Squidex.Infrastructure": "1.0.0-*" diff --git a/src/Squidex.Infrastructure/project.json b/src/Squidex.Infrastructure/project.json index d6e6623a7..e085e6508 100644 --- a/src/Squidex.Infrastructure/project.json +++ b/src/Squidex.Infrastructure/project.json @@ -4,7 +4,7 @@ "Autofac": "4.2.1", "EventStore.ClientAPI.NetCore": "0.0.1-alpha", "Microsoft.Extensions.Logging": "1.1.0", - "NETStandard.Library": "1.6.0", + "NETStandard.Library": "1.6.1", "Newtonsoft.Json": "9.0.2-beta1", "NodaTime": "2.0.0-alpha20160729", "protobuf-net": "2.1.0", diff --git a/src/Squidex.Read/project.json b/src/Squidex.Read/project.json index 4a4162598..c172fb848 100644 --- a/src/Squidex.Read/project.json +++ b/src/Squidex.Read/project.json @@ -4,7 +4,7 @@ "dependencies": { "Microsoft.Extensions.Caching.Memory": "1.1.0", "MongoDB.Driver": "2.4.0", - "NETStandard.Library": "1.6.0", + "NETStandard.Library": "1.6.1", "NodaTime": "2.0.0-alpha20160729", "Squidex.Core": "1.0.0-*", "Squidex.Events": "1.0.0-*", diff --git a/src/Squidex.Store.MongoDb/project.json b/src/Squidex.Store.MongoDb/project.json index 79eec6f57..a84cdfe3a 100644 --- a/src/Squidex.Store.MongoDb/project.json +++ b/src/Squidex.Store.MongoDb/project.json @@ -5,7 +5,7 @@ "Microsoft.AspNetCore.Identity": "1.1.0", "Microsoft.AspNetCore.Identity.MongoDB": "1.0.2", "MongoDB.Driver": "2.4.0", - "NETStandard.Library": "1.6.0", + "NETStandard.Library": "1.6.1", "Squidex.Core": "1.0.0-*", "Squidex.Events": "1.0.0-*", "Squidex.Infrastructure": "1.0.0-*", diff --git a/src/Squidex.Write/project.json b/src/Squidex.Write/project.json index 70589e3b5..f9e0bdec8 100644 --- a/src/Squidex.Write/project.json +++ b/src/Squidex.Write/project.json @@ -3,7 +3,7 @@ "dependencies": { "Microsoft.AspNetCore.Identity": "1.1.0", - "NETStandard.Library": "1.6.0", + "NETStandard.Library": "1.6.1", "NodaTime": "2.0.0-alpha20160729", "Squidex.Core": "1.0.0-*", "Squidex.Events": "1.0.0-*", diff --git a/src/Squidex/Config/Identity/IdentityServices.cs b/src/Squidex/Config/Identity/IdentityServices.cs index 94ccd9644..7434b3165 100644 --- a/src/Squidex/Config/Identity/IdentityServices.cs +++ b/src/Squidex/Config/Identity/IdentityServices.cs @@ -40,17 +40,21 @@ namespace Squidex.Config.Identity } services.AddSingleton( - GetScopes()); + GetApiResources()); + services.AddSingleton( + GetIdentityResources()); services.AddSingleton(); - services.AddSingleton(); + services.AddSingleton(); services.AddIdentityServer(options => { options.UserInteractionOptions.ErrorUrl = "/account/error/"; }) - .SetSigningCredential(certificate) + .AddInMemoryApiResources(GetApiResources()) + .AddInMemoryIdentityResources(GetIdentityResources()) + .AddSigningCredential(certificate) .AddAspNetIdentity(); return services; @@ -64,26 +68,21 @@ namespace Squidex.Config.Identity return services; } - public static IEnumerable GetScopes() + private static IEnumerable GetApiResources() { - return new List - { - StandardScopes.OpenId, - StandardScopes.Profile, - new Scope - { - Name = Constants.ProfileScope, Type = ScopeType.Identity, - Claims = new List - { - new ScopeClaim(ExtendedClaimTypes.SquidexDisplayName, true), - new ScopeClaim(ExtendedClaimTypes.SquidexPictureUrl, true) - } - }, - new Scope + yield return new ApiResource(Constants.ApiScope); + } + + private static IEnumerable GetIdentityResources() + { + yield return new IdentityResources.OpenId(); + yield return new IdentityResources.Profile(); + yield return new IdentityResource(Constants.ProfileScope, + new[] { - Name = Constants.ApiScope, Type = ScopeType.Resource - } - }; + ExtendedClaimTypes.SquidexDisplayName, + ExtendedClaimTypes.SquidexPictureUrl + }); } } } diff --git a/src/Squidex/Config/Identity/IdentityUsage.cs b/src/Squidex/Config/Identity/IdentityUsage.cs index f33d413ff..123ce6187 100644 --- a/src/Squidex/Config/Identity/IdentityUsage.cs +++ b/src/Squidex/Config/Identity/IdentityUsage.cs @@ -100,8 +100,8 @@ namespace Squidex.Config.Identity app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions { Authority = apiAuthorityUrl, - ScopeName = apiScope, - ScopeSecret = null, + ApiName = apiScope, + ApiSecret = null, RequireHttpsMetadata = identityOptions.RequiresHttps }); } diff --git a/src/Squidex/Config/Identity/LazyClientStore.cs b/src/Squidex/Config/Identity/LazyClientStore.cs index ae46e4626..34f0a897f 100644 --- a/src/Squidex/Config/Identity/LazyClientStore.cs +++ b/src/Squidex/Config/Identity/LazyClientStore.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using IdentityServer4; using IdentityServer4.Models; using IdentityServer4.Stores; using Microsoft.Extensions.Options; @@ -111,8 +112,8 @@ namespace Squidex.Config.Identity AllowedGrantTypes = GrantTypes.Implicit, AllowedScopes = new List { - StandardScopes.OpenId.Name, - StandardScopes.Profile.Name, + IdentityServerConstants.StandardScopes.OpenId, + IdentityServerConstants.StandardScopes.Profile, Constants.ApiScope, Constants.ProfileScope }, diff --git a/src/Squidex/Controllers/Api/Schemas/Models/Fields/NumberField.cs b/src/Squidex/Controllers/Api/Schemas/Models/Fields/NumberField.cs index 0ea566c17..fcf87415d 100644 --- a/src/Squidex/Controllers/Api/Schemas/Models/Fields/NumberField.cs +++ b/src/Squidex/Controllers/Api/Schemas/Models/Fields/NumberField.cs @@ -6,11 +6,13 @@ // All rights reserved. // ========================================================================== +using NJsonSchema.Annotations; using Squidex.Core.Schemas; using Squidex.Infrastructure.Reflection; namespace Squidex.Controllers.Api.Schemas.Models.Fields { + [JsonSchema("Number")] public sealed class NumberField : FieldPropertiesDto { /// diff --git a/src/Squidex/Controllers/Api/Schemas/Models/Fields/StringField.cs b/src/Squidex/Controllers/Api/Schemas/Models/Fields/StringField.cs index 8d9e1082c..a3dd12a02 100644 --- a/src/Squidex/Controllers/Api/Schemas/Models/Fields/StringField.cs +++ b/src/Squidex/Controllers/Api/Schemas/Models/Fields/StringField.cs @@ -6,11 +6,13 @@ // All rights reserved. // ========================================================================== +using NJsonSchema.Annotations; using Squidex.Core.Schemas; using Squidex.Infrastructure.Reflection; namespace Squidex.Controllers.Api.Schemas.Models.Fields { + [JsonSchema("String")] public sealed class StringField : FieldPropertiesDto { /// diff --git a/src/Squidex/project.json b/src/Squidex/project.json index 18f573083..f48549c20 100644 --- a/src/Squidex/project.json +++ b/src/Squidex/project.json @@ -27,7 +27,7 @@ "type": "platform" }, "MongoDB.Driver": "2.4.0", -"NJsonSchema": "6.5.6190.16910", + "NJsonSchema": "6.3.6185.19861", "NSwag.AspNetCore": "8.0.0", "OpenCover": "4.6.519", "ReportGenerator": "2.5.2-beta2", diff --git a/tests/Squidex.Infrastructure.Tests/TypeNameAttributeTest.cs b/tests/Squidex.Infrastructure.Tests/TypeNameAttributeTest.cs index 2a8ebf214..819050ded 100644 --- a/tests/Squidex.Infrastructure.Tests/TypeNameAttributeTest.cs +++ b/tests/Squidex.Infrastructure.Tests/TypeNameAttributeTest.cs @@ -1,7 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +// ========================================================================== +// TypeNameAttributeTest.cs +// Squidex Headless CMS +// ========================================================================== +// Copyright (c) Squidex Group +// All rights reserved. +// ========================================================================== + using Xunit; namespace Squidex.Infrastructure