From 7b2821e8668b19c8dc34593b505cf1b2597f49e7 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Wed, 16 Feb 2022 22:36:47 +0300 Subject: [PATCH 1/8] Add enums to cater for multiple scheme and bearer formats --- .../Models/AuthenticationScheme.cs | 30 +++++++++++++++++++ src/Microsoft.OpenApi/Models/BearerFormat.cs | 19 ++++++++++++ .../Models/OpenApiSecurityScheme.cs | 6 ++-- 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 src/Microsoft.OpenApi/Models/AuthenticationScheme.cs create mode 100644 src/Microsoft.OpenApi/Models/BearerFormat.cs diff --git a/src/Microsoft.OpenApi/Models/AuthenticationScheme.cs b/src/Microsoft.OpenApi/Models/AuthenticationScheme.cs new file mode 100644 index 000000000..712dd9665 --- /dev/null +++ b/src/Microsoft.OpenApi/Models/AuthenticationScheme.cs @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using Microsoft.OpenApi.Attributes; + +namespace Microsoft.OpenApi.Models +{ + /// + /// The type of HTTP authentication schemes + /// + public enum AuthenticationScheme + { + /// + /// Use basic HTTP authentication schemes + /// + [Display("basic")] Basic, + + /// + /// Use bearer Authentication scheme + /// + [Display("bearer")] Bearer, + + /// + /// Use OpenIdConnectUrl + /// + [Display("openIdConnectUrl")] OpenIdConnectUrl + + + } +} diff --git a/src/Microsoft.OpenApi/Models/BearerFormat.cs b/src/Microsoft.OpenApi/Models/BearerFormat.cs new file mode 100644 index 000000000..e3ec7dbf0 --- /dev/null +++ b/src/Microsoft.OpenApi/Models/BearerFormat.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using Microsoft.OpenApi.Attributes; + +namespace Microsoft.OpenApi.Models +{ + /// + /// The type of Bearer authentication scheme + /// + public enum BearerFormat + { + /// + /// Use JWT bearer format + /// + [Display("jwt")] JWT, + + } +} diff --git a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs index 7694c5fd4..7d0a98bf7 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. using System; @@ -39,14 +39,14 @@ public class OpenApiSecurityScheme : IOpenApiSerializable, IOpenApiReferenceable /// REQUIRED. The name of the HTTP Authorization scheme to be used /// in the Authorization header as defined in RFC7235. /// - public string Scheme { get; set; } + public AuthenticationScheme Scheme { get; set; } /// /// A hint to the client to identify how the bearer token is formatted. /// Bearer tokens are usually generated by an authorization server, /// so this information is primarily for documentation purposes. /// - public string BearerFormat { get; set; } + public BearerFormat BearerFormat { get; set; } /// /// REQUIRED. An object containing configuration information for the flow types supported. From 8af1c193a98abf07ca765258e0146fe8943156d0 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Wed, 16 Feb 2022 22:38:04 +0300 Subject: [PATCH 2/8] Get the display name from the enum --- .../V3/OpenApiSecuritySchemeDeserializer.cs | 4 ++-- src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs b/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs index 0e7b1c39c..32742291b 100644 --- a/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs +++ b/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs @@ -44,13 +44,13 @@ internal static partial class OpenApiV3Deserializer { "scheme", (o, n) => { - o.Scheme = n.GetScalarValue(); + o.Scheme = n.GetScalarValue().GetEnumFromDisplayName(); } }, { "bearerFormat", (o, n) => { - o.BearerFormat = n.GetScalarValue(); + o.BearerFormat = n.GetScalarValue().GetEnumFromDisplayName(); } }, { diff --git a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs index 7d0a98bf7..3542be3a5 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs @@ -118,8 +118,8 @@ public void SerializeAsV3WithoutReference(IOpenApiWriter writer) // These properties apply to http type only. // scheme // bearerFormat - writer.WriteProperty(OpenApiConstants.Scheme, Scheme); - writer.WriteProperty(OpenApiConstants.BearerFormat, BearerFormat); + writer.WriteProperty(OpenApiConstants.Scheme, Scheme.GetDisplayName()); + writer.WriteProperty(OpenApiConstants.BearerFormat, BearerFormat.GetDisplayName()); break; case SecuritySchemeType.OAuth2: // This property apply to oauth2 type only. From fc6f4617b20bbf074eb877ed834d4d8808924b7b Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Wed, 16 Feb 2022 22:38:19 +0300 Subject: [PATCH 3/8] Refactor code --- .../V2/OpenApiSecuritySchemeDeserializer.cs | 2 +- src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs | 4 ++-- .../V3Tests/OpenApiSecuritySchemeTests.cs | 6 +++--- .../Models/OpenApiComponentsTests.cs | 4 ++-- .../Models/OpenApiSecuritySchemeTests.cs | 10 +++++----- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs b/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs index 7e0c6c1dc..fc7b761a4 100644 --- a/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs +++ b/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs @@ -30,7 +30,7 @@ internal static partial class OpenApiV2Deserializer { case "basic": o.Type = SecuritySchemeType.Http; - o.Scheme = "basic"; + o.Scheme = AuthenticationScheme.Basic; break; case "apiKey": diff --git a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs index 3542be3a5..32550dff5 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. using System; @@ -163,7 +163,7 @@ public void SerializeAsV2(IOpenApiWriter writer) /// public void SerializeAsV2WithoutReference(IOpenApiWriter writer) { - if (Type == SecuritySchemeType.Http && Scheme != OpenApiConstants.Basic) + if (Type == SecuritySchemeType.Http && Scheme != AuthenticationScheme.Basic) { // Bail because V2 does not support non-basic HTTP scheme writer.WriteStartObject(); diff --git a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs index 57c156cc0..6aca51559 100644 --- a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs +++ b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs @@ -40,7 +40,7 @@ public void ParseHttpSecuritySchemeShouldSucceed() new OpenApiSecurityScheme { Type = SecuritySchemeType.Http, - Scheme = "basic" + Scheme = AuthenticationScheme.Basic }); } } @@ -95,8 +95,8 @@ public void ParseBearerSecuritySchemeShouldSucceed() new OpenApiSecurityScheme { Type = SecuritySchemeType.Http, - Scheme = "bearer", - BearerFormat = "JWT" + Scheme = AuthenticationScheme.Bearer, + BearerFormat = BearerFormat.JWT }); } } diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs index 002143b15..84364a12c 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs @@ -57,7 +57,7 @@ public class OpenApiComponentsTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = "openIdConnectUrl", + Scheme = AuthenticationScheme.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect") } } @@ -129,7 +129,7 @@ public class OpenApiComponentsTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = "openIdConnectUrl", + Scheme = AuthenticationScheme.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect"), Reference = new OpenApiReference { diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs index b7871f51f..6c035f1a0 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs @@ -32,15 +32,15 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.Http, - Scheme = "basic", + Scheme = AuthenticationScheme.Basic, }; public static OpenApiSecurityScheme HttpBearerSecurityScheme = new OpenApiSecurityScheme { Description = "description1", Type = SecuritySchemeType.Http, - Scheme = "bearer", - BearerFormat = "JWT", + Scheme = AuthenticationScheme.Bearer, + BearerFormat = BearerFormat.JWT, }; public static OpenApiSecurityScheme OAuth2SingleFlowSecurityScheme = new OpenApiSecurityScheme @@ -103,7 +103,7 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = "openIdConnectUrl", + Scheme = AuthenticationScheme.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect") }; @@ -111,7 +111,7 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = "openIdConnectUrl", + Scheme = AuthenticationScheme.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect"), Reference = new OpenApiReference { From 5dc4d8a2fe13cf39e67f31523a0dacd3ac46766b Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Wed, 16 Feb 2022 23:46:08 +0300 Subject: [PATCH 4/8] Fix test --- .../V2Tests/OpenApiSecuritySchemeTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs index 1a4a2a3d7..16afc3c08 100644 --- a/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs +++ b/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs @@ -38,7 +38,7 @@ public void ParseHttpSecuritySchemeShouldSucceed() new OpenApiSecurityScheme { Type = SecuritySchemeType.Http, - Scheme = "basic" + Scheme = AuthenticationScheme.Basic }); } } From 972098762d02b8a49707719e472eec8682669241 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Mon, 21 Feb 2022 11:24:56 +0300 Subject: [PATCH 5/8] Add Jwt and Bearer constants and revert previous changes --- .../V2/OpenApiSecuritySchemeDeserializer.cs | 2 +- .../V3/OpenApiSecuritySchemeDeserializer.cs | 4 +-- .../Models/AuthenticationScheme.cs | 30 ------------------- src/Microsoft.OpenApi/Models/BearerFormat.cs | 19 ------------ .../Models/OpenApiConstants.cs | 10 +++++++ .../Models/OpenApiSecurityScheme.cs | 10 +++---- .../V2Tests/OpenApiSecuritySchemeTests.cs | 2 +- .../V3Tests/OpenApiSecuritySchemeTests.cs | 6 ++-- .../Models/OpenApiComponentsTests.cs | 4 +-- .../Models/OpenApiSecuritySchemeTests.cs | 11 +++---- 10 files changed, 30 insertions(+), 68 deletions(-) delete mode 100644 src/Microsoft.OpenApi/Models/AuthenticationScheme.cs delete mode 100644 src/Microsoft.OpenApi/Models/BearerFormat.cs diff --git a/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs b/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs index fc7b761a4..b2aab773c 100644 --- a/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs +++ b/src/Microsoft.OpenApi.Readers/V2/OpenApiSecuritySchemeDeserializer.cs @@ -30,7 +30,7 @@ internal static partial class OpenApiV2Deserializer { case "basic": o.Type = SecuritySchemeType.Http; - o.Scheme = AuthenticationScheme.Basic; + o.Scheme = OpenApiConstants.Basic; break; case "apiKey": diff --git a/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs b/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs index 32742291b..0e7b1c39c 100644 --- a/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs +++ b/src/Microsoft.OpenApi.Readers/V3/OpenApiSecuritySchemeDeserializer.cs @@ -44,13 +44,13 @@ internal static partial class OpenApiV3Deserializer { "scheme", (o, n) => { - o.Scheme = n.GetScalarValue().GetEnumFromDisplayName(); + o.Scheme = n.GetScalarValue(); } }, { "bearerFormat", (o, n) => { - o.BearerFormat = n.GetScalarValue().GetEnumFromDisplayName(); + o.BearerFormat = n.GetScalarValue(); } }, { diff --git a/src/Microsoft.OpenApi/Models/AuthenticationScheme.cs b/src/Microsoft.OpenApi/Models/AuthenticationScheme.cs deleted file mode 100644 index 712dd9665..000000000 --- a/src/Microsoft.OpenApi/Models/AuthenticationScheme.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -using Microsoft.OpenApi.Attributes; - -namespace Microsoft.OpenApi.Models -{ - /// - /// The type of HTTP authentication schemes - /// - public enum AuthenticationScheme - { - /// - /// Use basic HTTP authentication schemes - /// - [Display("basic")] Basic, - - /// - /// Use bearer Authentication scheme - /// - [Display("bearer")] Bearer, - - /// - /// Use OpenIdConnectUrl - /// - [Display("openIdConnectUrl")] OpenIdConnectUrl - - - } -} diff --git a/src/Microsoft.OpenApi/Models/BearerFormat.cs b/src/Microsoft.OpenApi/Models/BearerFormat.cs deleted file mode 100644 index e3ec7dbf0..000000000 --- a/src/Microsoft.OpenApi/Models/BearerFormat.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -using Microsoft.OpenApi.Attributes; - -namespace Microsoft.OpenApi.Models -{ - /// - /// The type of Bearer authentication scheme - /// - public enum BearerFormat - { - /// - /// Use JWT bearer format - /// - [Display("jwt")] JWT, - - } -} diff --git a/src/Microsoft.OpenApi/Models/OpenApiConstants.cs b/src/Microsoft.OpenApi/Models/OpenApiConstants.cs index 3a29a88b1..553844764 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiConstants.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiConstants.cs @@ -617,6 +617,16 @@ public static class OpenApiConstants /// public const string Basic = "basic"; + /// + /// Field: Bearer + /// + public const string Bearer = "bearer"; + + /// + /// Field: JWT + /// + public const string Jwt = "JWT"; + /// /// Field: Consumes /// diff --git a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs index 32550dff5..7694c5fd4 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiSecurityScheme.cs @@ -39,14 +39,14 @@ public class OpenApiSecurityScheme : IOpenApiSerializable, IOpenApiReferenceable /// REQUIRED. The name of the HTTP Authorization scheme to be used /// in the Authorization header as defined in RFC7235. /// - public AuthenticationScheme Scheme { get; set; } + public string Scheme { get; set; } /// /// A hint to the client to identify how the bearer token is formatted. /// Bearer tokens are usually generated by an authorization server, /// so this information is primarily for documentation purposes. /// - public BearerFormat BearerFormat { get; set; } + public string BearerFormat { get; set; } /// /// REQUIRED. An object containing configuration information for the flow types supported. @@ -118,8 +118,8 @@ public void SerializeAsV3WithoutReference(IOpenApiWriter writer) // These properties apply to http type only. // scheme // bearerFormat - writer.WriteProperty(OpenApiConstants.Scheme, Scheme.GetDisplayName()); - writer.WriteProperty(OpenApiConstants.BearerFormat, BearerFormat.GetDisplayName()); + writer.WriteProperty(OpenApiConstants.Scheme, Scheme); + writer.WriteProperty(OpenApiConstants.BearerFormat, BearerFormat); break; case SecuritySchemeType.OAuth2: // This property apply to oauth2 type only. @@ -163,7 +163,7 @@ public void SerializeAsV2(IOpenApiWriter writer) /// public void SerializeAsV2WithoutReference(IOpenApiWriter writer) { - if (Type == SecuritySchemeType.Http && Scheme != AuthenticationScheme.Basic) + if (Type == SecuritySchemeType.Http && Scheme != OpenApiConstants.Basic) { // Bail because V2 does not support non-basic HTTP scheme writer.WriteStartObject(); diff --git a/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs index 16afc3c08..22f7d1633 100644 --- a/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs +++ b/test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiSecuritySchemeTests.cs @@ -38,7 +38,7 @@ public void ParseHttpSecuritySchemeShouldSucceed() new OpenApiSecurityScheme { Type = SecuritySchemeType.Http, - Scheme = AuthenticationScheme.Basic + Scheme = OpenApiConstants.Basic }); } } diff --git a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs index 6aca51559..9d7a27d72 100644 --- a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs +++ b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiSecuritySchemeTests.cs @@ -40,7 +40,7 @@ public void ParseHttpSecuritySchemeShouldSucceed() new OpenApiSecurityScheme { Type = SecuritySchemeType.Http, - Scheme = AuthenticationScheme.Basic + Scheme = OpenApiConstants.Basic }); } } @@ -95,8 +95,8 @@ public void ParseBearerSecuritySchemeShouldSucceed() new OpenApiSecurityScheme { Type = SecuritySchemeType.Http, - Scheme = AuthenticationScheme.Bearer, - BearerFormat = BearerFormat.JWT + Scheme = OpenApiConstants.Bearer, + BearerFormat = OpenApiConstants.Jwt }); } } diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs index 84364a12c..e3a6ebf1e 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs @@ -57,7 +57,7 @@ public class OpenApiComponentsTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = AuthenticationScheme.OpenIdConnectUrl, + Scheme = OpenApiConstants.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect") } } @@ -129,7 +129,7 @@ public class OpenApiComponentsTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = AuthenticationScheme.OpenIdConnectUrl, + Scheme = OpenApiConstants.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect"), Reference = new OpenApiReference { diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs index 6c035f1a0..4e30dc80f 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs @@ -32,15 +32,16 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.Http, - Scheme = AuthenticationScheme.Basic, + Scheme = OpenApiConstants.Basic + }; public static OpenApiSecurityScheme HttpBearerSecurityScheme = new OpenApiSecurityScheme { Description = "description1", Type = SecuritySchemeType.Http, - Scheme = AuthenticationScheme.Bearer, - BearerFormat = BearerFormat.JWT, + Scheme = OpenApiConstants.Bearer, + BearerFormat = OpenApiConstants.Jwt }; public static OpenApiSecurityScheme OAuth2SingleFlowSecurityScheme = new OpenApiSecurityScheme @@ -103,7 +104,7 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = AuthenticationScheme.OpenIdConnectUrl, + Scheme = OpenApiConstants.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect") }; @@ -111,7 +112,7 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = AuthenticationScheme.OpenIdConnectUrl, + Scheme = OpenApiConstants.OpenIdConnectUrl, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect"), Reference = new OpenApiReference { From 2b2bc251d17c1ac9624494d6a3373e5e306fdbba Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Tue, 22 Feb 2022 19:11:10 +0300 Subject: [PATCH 6/8] Remove the OpenIdConnectUrl constant and replace it with the Bearer scheme in the tests --- src/Microsoft.OpenApi/Models/OpenApiConstants.cs | 5 ----- .../Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs | 4 ++-- .../Models/OpenApiSecuritySchemeTests.cs | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Microsoft.OpenApi/Models/OpenApiConstants.cs b/src/Microsoft.OpenApi/Models/OpenApiConstants.cs index 553844764..88c44ef9a 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiConstants.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiConstants.cs @@ -535,11 +535,6 @@ public static class OpenApiConstants /// public const string Flows = "flows"; - /// - /// Field: OpenIdConnectUrl - /// - public const string OpenIdConnectUrl = "openIdConnectUrl"; - /// /// Field: DefaultName /// diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs index e3a6ebf1e..7ba6d132c 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiComponentsTests.cs @@ -57,7 +57,7 @@ public class OpenApiComponentsTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = OpenApiConstants.OpenIdConnectUrl, + Scheme = OpenApiConstants.Bearer, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect") } } @@ -129,7 +129,7 @@ public class OpenApiComponentsTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = OpenApiConstants.OpenIdConnectUrl, + Scheme = OpenApiConstants.Bearer, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect"), Reference = new OpenApiReference { diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs index 4e30dc80f..1294f0f48 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiSecuritySchemeTests.cs @@ -104,7 +104,7 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = OpenApiConstants.OpenIdConnectUrl, + Scheme = OpenApiConstants.Bearer, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect") }; @@ -112,7 +112,7 @@ public class OpenApiSecuritySchemeTests { Description = "description1", Type = SecuritySchemeType.OpenIdConnect, - Scheme = OpenApiConstants.OpenIdConnectUrl, + Scheme = OpenApiConstants.Bearer, OpenIdConnectUrl = new Uri("https://example.com/openIdConnect"), Reference = new OpenApiReference { From 4fdfd7040311898eaffb1c17a5b2771964a63301 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Tue, 22 Feb 2022 20:58:00 +0300 Subject: [PATCH 7/8] Clean up solution file --- Microsoft.OpenApi.sln | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Microsoft.OpenApi.sln b/Microsoft.OpenApi.sln index dc489bff8..e8e902e86 100644 --- a/Microsoft.OpenApi.sln +++ b/Microsoft.OpenApi.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29613.14 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32210.238 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.OpenApi", "src\Microsoft.OpenApi\Microsoft.OpenApi.csproj", "{A8E50143-69B2-472A-9D45-3F9A05D13202}" EndProject @@ -12,7 +12,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution readme.md = readme.md EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.OpenApi.Workbench", "src\Microsoft.OpenApi.Workbench\Microsoft.OpenApi.Workbench.csproj", "{6A5E91E5-0441-46EE-AEB9-8334981B7F08}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.OpenApi.Workbench", "src\Microsoft.OpenApi.Workbench\Microsoft.OpenApi.Workbench.csproj", "{6A5E91E5-0441-46EE-AEB9-8334981B7F08}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.OpenApi.Readers", "src\Microsoft.OpenApi.Readers\Microsoft.OpenApi.Readers.csproj", "{79933258-0126-4382-8755-D50820ECC483}" EndProject @@ -38,10 +38,6 @@ Global {A8E50143-69B2-472A-9D45-3F9A05D13202}.Debug|Any CPU.Build.0 = Debug|Any CPU {A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|Any CPU.ActiveCfg = Release|Any CPU {A8E50143-69B2-472A-9D45-3F9A05D13202}.Release|Any CPU.Build.0 = Release|Any CPU - {6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A5E91E5-0441-46EE-AEB9-8334981B7F08}.Release|Any CPU.Build.0 = Release|Any CPU {79933258-0126-4382-8755-D50820ECC483}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {79933258-0126-4382-8755-D50820ECC483}.Debug|Any CPU.Build.0 = Debug|Any CPU {79933258-0126-4382-8755-D50820ECC483}.Release|Any CPU.ActiveCfg = Release|Any CPU From 0f1350d724eb5de7383d5db55e7c57b27f2d6376 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Tue, 22 Feb 2022 21:20:05 +0300 Subject: [PATCH 8/8] Revert --- src/Microsoft.OpenApi/Models/OpenApiConstants.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Microsoft.OpenApi/Models/OpenApiConstants.cs b/src/Microsoft.OpenApi/Models/OpenApiConstants.cs index 88c44ef9a..553844764 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiConstants.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiConstants.cs @@ -535,6 +535,11 @@ public static class OpenApiConstants /// public const string Flows = "flows"; + /// + /// Field: OpenIdConnectUrl + /// + public const string OpenIdConnectUrl = "openIdConnectUrl"; + /// /// Field: DefaultName ///