diff --git a/Constants/XAuthorization.cs b/Constants/XAuthorization.cs
index e064168..da085b4 100644
--- a/Constants/XAuthorization.cs
+++ b/Constants/XAuthorization.cs
@@ -1,13 +1,14 @@
namespace xCommons.Constants {
public partial struct XAuthorization {
- public const string TokenIdentifier = "Bearer ";
+ public const string XApiKey = "X-Api-Key";
public const string Header = "Authorization";
+ public const string ExpiresAt = "expires_at";
+ public const string XPoweredBy = "X-PoweredBy";
+ public const string TokenIdentifier = "Bearer ";
public const string AccessToken = "access_token";
public const string RefreshToken = "refresh_token";
- public const string ExpiresAt = "expires_at";
- public const string AccessTokenExpired = "AccessToken-Expired";
- public const string RevisionChecksum = "revision_checksum";
- public const string XPoweredBy = "X-PoweredBy";
public const int ThresholdBeforeTokenExpiration = 600;
+ public const string RevisionChecksum = "revision_checksum";
+ public const string AccessTokenExpired = "AccessToken-Expired";
}
}
\ No newline at end of file
diff --git a/Extensions/DIExtensions.cs b/Extensions/DIExtensions.cs
index 5b637c9..836ed9b 100644
--- a/Extensions/DIExtensions.cs
+++ b/Extensions/DIExtensions.cs
@@ -94,12 +94,14 @@ namespace xCommons.Extensions
///
///
///
+ ///
///
public static void AddXSwaggerGenOptions(
this SwaggerGenOptions source,
string xmlFilePath = null,
bool addRequiredXPoweredFilter = true,
bool addXTokenAuthorization = true,
+ bool addXApiKeyAuthorization = true,
bool addDefaultValueFilter = true
)
{
@@ -210,6 +212,32 @@ namespace xCommons.Extensions
});
#endregion
}
+
+ //
+ // Handle XApiKey Authorization ...
+ if (addXApiKeyAuthorization)
+ {
+ //
+ source.AddSecurityDefinition(nameof(XAuthorization.XApiKey), new OpenApiSecurityScheme
+ {
+ In = ParameterLocation.Header,
+ Name = XAuthorization.XApiKey,
+ Type = SecuritySchemeType.ApiKey,
+ Description = "Api Key for Authentication ...",
+ });
+
+ //
+ source.AddSecurityRequirement(new OpenApiSecurityRequirement {
+ {
+ new OpenApiSecurityScheme {
+ Reference = new OpenApiReference {
+ Id = nameof (XAuthorization.XApiKey),
+ Type = ReferenceType.SecurityScheme
+ }
+ }, Array.Empty ()
+ }
+ });
+ }
}
///
@@ -221,6 +249,7 @@ namespace xCommons.Extensions
///
///
///
+ ///
///
public static void AddXSwagger(
this IServiceCollection source,
@@ -229,6 +258,7 @@ namespace xCommons.Extensions
string xmlFilePath = null,
bool addRequiredXPoweredFilter = true,
bool addXTokenAuthorization = true,
+ bool addXApiKeyAuthorization = true,
bool addDefaultValueFilter = true
)
{
@@ -252,6 +282,7 @@ namespace xCommons.Extensions
xmlFilePath: xmlFilePath,
addDefaultValueFilter: addDefaultValueFilter,
addXTokenAuthorization: addXTokenAuthorization,
+ addXApiKeyAuthorization: addXApiKeyAuthorization,
addRequiredXPoweredFilter: addRequiredXPoweredFilter
);
#endregion