diff --git a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs
index 9c8a9b2a7..e0ca634eb 100644
--- a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs
+++ b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs
@@ -73,7 +73,7 @@ public void RegisterComponents()
///
/// A declaration of which security mechanisms can be used across the API.
///
- public IList? SecurityRequirements { get; set; } =
+ public IList? Security { get; set; } =
new List();
private HashSet? _tags;
@@ -139,7 +139,7 @@ public OpenApiDocument(OpenApiDocument? document)
Paths = document?.Paths != null ? new(document?.Paths) : new OpenApiPaths();
Webhooks = document?.Webhooks != null ? new Dictionary(document.Webhooks) : null;
Components = document?.Components != null ? new(document?.Components) : null;
- SecurityRequirements = document?.SecurityRequirements != null ? new List(document.SecurityRequirements) : null;
+ Security = document?.Security != null ? new List(document.Security) : null;
Tags = document?.Tags != null ? new HashSet(document.Tags, OpenApiTagComparer.Instance) : null;
ExternalDocs = document?.ExternalDocs != null ? new(document?.ExternalDocs) : null;
Extensions = document?.Extensions != null ? new Dictionary(document.Extensions) : null;
@@ -223,7 +223,7 @@ private void SerializeInternal(IOpenApiWriter writer, OpenApiSpecVersion version
// security
writer.WriteOptionalCollection(
OpenApiConstants.Security,
- SecurityRequirements,
+ Security,
callback);
// tags
@@ -361,7 +361,7 @@ public void SerializeAsV2(IOpenApiWriter writer)
// security
writer.WriteOptionalCollection(
OpenApiConstants.Security,
- SecurityRequirements,
+ Security,
(w, s) => s.SerializeAsV2(w));
// tags
diff --git a/src/Microsoft.OpenApi/Reader/V2/OpenApiDocumentDeserializer.cs b/src/Microsoft.OpenApi/Reader/V2/OpenApiDocumentDeserializer.cs
index 7e13578f3..da4060721 100644
--- a/src/Microsoft.OpenApi/Reader/V2/OpenApiDocumentDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V2/OpenApiDocumentDeserializer.cs
@@ -103,7 +103,7 @@ internal static partial class OpenApiV2Deserializer
o.Components.SecuritySchemes = n.CreateMap(LoadSecurityScheme, o);
}
},
- {"security", (o, n, _) => o.SecurityRequirements = n.CreateList(LoadSecurityRequirement, o)},
+ {"security", (o, n, _) => o.Security = n.CreateList(LoadSecurityRequirement, o)},
{"tags", (o, n, _) => { if (n.CreateList(LoadTag, o) is {Count:> 0} tags) {o.Tags = new HashSet(tags, OpenApiTagComparer.Instance); } } },
{"externalDocs", (o, n, _) => o.ExternalDocs = LoadExternalDocs(n, o)}
};
diff --git a/src/Microsoft.OpenApi/Reader/V3/OpenApiDocumentDeserializer.cs b/src/Microsoft.OpenApi/Reader/V3/OpenApiDocumentDeserializer.cs
index f6ca536c4..044542d21 100644
--- a/src/Microsoft.OpenApi/Reader/V3/OpenApiDocumentDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V3/OpenApiDocumentDeserializer.cs
@@ -29,7 +29,7 @@ internal static partial class OpenApiV3Deserializer
{"components", (o, n, _) => o.Components = LoadComponents(n, o)},
{"tags", (o, n, _) => { if (n.CreateList(LoadTag, o) is {Count:> 0} tags) {o.Tags = new HashSet(tags, OpenApiTagComparer.Instance); } } },
{"externalDocs", (o, n, _) => o.ExternalDocs = LoadExternalDocs(n, o)},
- {"security", (o, n, _) => o.SecurityRequirements = n.CreateList(LoadSecurityRequirement, o)}
+ {"security", (o, n, _) => o.Security = n.CreateList(LoadSecurityRequirement, o)}
};
private static readonly PatternFieldMap _openApiPatternFields = new PatternFieldMap
diff --git a/src/Microsoft.OpenApi/Reader/V31/OpenApiDocumentDeserializer.cs b/src/Microsoft.OpenApi/Reader/V31/OpenApiDocumentDeserializer.cs
index f16ac31cc..e6c1f5761 100644
--- a/src/Microsoft.OpenApi/Reader/V31/OpenApiDocumentDeserializer.cs
+++ b/src/Microsoft.OpenApi/Reader/V31/OpenApiDocumentDeserializer.cs
@@ -27,7 +27,7 @@ internal static partial class OpenApiV31Deserializer
{"components", (o, n, _) => o.Components = LoadComponents(n, o)},
{"tags", (o, n, _) => { if (n.CreateList(LoadTag, o) is {Count:> 0} tags) {o.Tags = new HashSet(tags, OpenApiTagComparer.Instance); } } },
{"externalDocs", (o, n, _) => o.ExternalDocs = LoadExternalDocs(n, o)},
- {"security", (o, n, _) => o.SecurityRequirements = n.CreateList(LoadSecurityRequirement, o)}
+ {"security", (o, n, _) => o.Security = n.CreateList(LoadSecurityRequirement, o)}
};
private static readonly PatternFieldMap _openApiPatternFields = new()
diff --git a/src/Microsoft.OpenApi/Services/OpenApiFilterService.cs b/src/Microsoft.OpenApi/Services/OpenApiFilterService.cs
index 5f439fe94..448542c10 100644
--- a/src/Microsoft.OpenApi/Services/OpenApiFilterService.cs
+++ b/src/Microsoft.OpenApi/Services/OpenApiFilterService.cs
@@ -80,7 +80,7 @@ public static OpenApiDocument CreateFilteredDocument(OpenApiDocument source, Fun
},
Components = components,
- SecurityRequirements = source.SecurityRequirements,
+ Security = source.Security,
Servers = source.Servers
};
diff --git a/src/Microsoft.OpenApi/Services/OpenApiWalker.cs b/src/Microsoft.OpenApi/Services/OpenApiWalker.cs
index 68e3133d6..76947f381 100644
--- a/src/Microsoft.OpenApi/Services/OpenApiWalker.cs
+++ b/src/Microsoft.OpenApi/Services/OpenApiWalker.cs
@@ -52,7 +52,7 @@ public void Walk(OpenApiDocument doc)
Walk(OpenApiConstants.Paths, () => Walk(doc.Paths));
Walk(OpenApiConstants.Webhooks, () => Walk(doc.Webhooks));
Walk(OpenApiConstants.Components, () => Walk(doc.Components));
- Walk(OpenApiConstants.Security, () => Walk(doc.SecurityRequirements));
+ Walk(OpenApiConstants.Security, () => Walk(doc.Security));
Walk(OpenApiConstants.ExternalDocs, () => Walk(doc.ExternalDocs));
Walk(OpenApiConstants.Tags, () => Walk(doc.Tags));
Walk(doc as IOpenApiExtensible);
diff --git a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiDocumentTests.cs b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiDocumentTests.cs
index c54ecb628..5ad4905a2 100644
--- a/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiDocumentTests.cs
+++ b/test/Microsoft.OpenApi.Readers.Tests/V3Tests/OpenApiDocumentTests.cs
@@ -1008,7 +1008,7 @@ public async Task ParseModifiedPetStoreDocumentWithTagAndSecurityShouldSucceed()
Description = "tagDescription2"
}
},
- SecurityRequirements = new List
+ Security = new List
{
new OpenApiSecurityRequirement
{
@@ -1052,7 +1052,7 @@ public async Task GlobalSecurityRequirementShouldReferenceSecurityScheme()
{
var result = await OpenApiDocument.LoadAsync(Path.Combine(SampleFolderPath, "securedApi.yaml"), SettingsFixture.ReaderSettings);
- var securityRequirement = result.Document.SecurityRequirements[0];
+ var securityRequirement = result.Document.Security[0];
Assert.Equivalent(result.Document.Components.SecuritySchemes.First().Value, securityRequirement.Keys.First());
}
diff --git a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt
index 76697d7ae..b05fbb276 100644
--- a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt
+++ b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt
@@ -720,7 +720,7 @@ namespace Microsoft.OpenApi.Models
public Microsoft.OpenApi.Models.OpenApiInfo Info { get; set; }
public string? JsonSchemaDialect { get; set; }
public Microsoft.OpenApi.Models.OpenApiPaths Paths { get; set; }
- public System.Collections.Generic.IList? SecurityRequirements { get; set; }
+ public System.Collections.Generic.IList? Security { get; set; }
public System.Collections.Generic.IList? Servers { get; set; }
public System.Collections.Generic.ISet? Tags { get; set; }
public System.Collections.Generic.IDictionary? Webhooks { get; set; }