Skip to content

Commit 3a9d324

Browse files
enabled flag
1 parent 36ae054 commit 3a9d324

3 files changed

Lines changed: 36 additions & 7 deletions

File tree

aruba-clearpass-caplugin/ArubaClearPassCAPlugin.cs

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Keyfactor.AnyGateway.Extensions;
1+
using Keyfactor.AnyGateway.Extensions;
22
using Keyfactor.Extensions.CAPlugin.ArubaClearPass.Client;
33
using Keyfactor.Logging;
44
using Keyfactor.PKI.Enums.EJBCA;
@@ -128,6 +128,13 @@ public async Task<EnrollmentResult> Enroll(string csr, string subject, Dictionar
128128
public async Task Ping()
129129
{
130130
_logger.MethodEntry(LogLevel.Trace);
131+
if (!_config.Enabled)
132+
{
133+
_logger.LogWarning($"The CA is currently in the Disabled state. It must be Enabled to perform operations. Skipping connectivity test...");
134+
_logger.MethodExit(LogLevel.Trace);
135+
return;
136+
}
137+
131138
try
132139
{
133140
_logger.LogInformation($"Attempting to authenticate");
@@ -159,7 +166,21 @@ public async Task Ping()
159166

160167
public async Task ValidateCAConnectionInfo(Dictionary<string, object> connectionInfo)
161168
{
162-
_logger.LogInformation("Validation successful");
169+
try
170+
{
171+
if (!(bool)connectionInfo[ArubaClearPassConstants.Config.Enabled])
172+
{
173+
_logger.LogWarning($"The CA is currently in the Disabled state. It must be Enabled to perform operations. Skipping validation...");
174+
_logger.MethodExit(LogLevel.Trace);
175+
return;
176+
}
177+
}
178+
catch (Exception ex)
179+
{
180+
_logger.LogError($"Exception: {LogHandler.FlattenException(ex)}");
181+
}
182+
183+
_logger.LogInformation("Validating CA Connection Info");
163184

164185
List<string> errors = new List<string>();
165186

@@ -181,7 +202,7 @@ public async Task ValidateCAConnectionInfo(Dictionary<string, object> connection
181202
errors.Add("The Base URL needs http:// or https://");
182203
}
183204

184-
_logger.LogTrace("Checking the API Secret.");
205+
_logger.LogTrace("Checking the API Client.");
185206
string apiClient = connectionInfo.ContainsKey(ArubaClearPassConstants.Config.ClearPassApiClient) ? (string)connectionInfo[ArubaClearPassConstants.Config.ClearPassApiClient] : string.Empty;
186207
if (string.IsNullOrWhiteSpace(apiClient))
187208
{
@@ -245,6 +266,13 @@ public Dictionary<string, PropertyConfigInfo> GetCAConnectorAnnotations()
245266
Hidden = false,
246267
DefaultValue = "",
247268
Type = "String"
269+
},
270+
[ArubaClearPassConstants.Config.Enabled] = new PropertyConfigInfo() //No Call Available to get a list of the CAs with Ids in API so...
271+
{
272+
Comments = "Flag to Enable or Disable gateway functionality. Disabling is primarily used to allow creation of the CA prior to configuration information being available.",
273+
Hidden = false,
274+
DefaultValue = true,
275+
Type = "Boolean"
248276
}
249277
};
250278
}
@@ -280,5 +308,4 @@ Task<AnyCAPluginCertificate> IAnyCAPlugin.GetSingleRecord(string caRequestID)
280308
}
281309

282310
}
283-
}
284-
311+
}

aruba-clearpass-caplugin/ArubaClearPassConfig.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ public ArubaClearPassConfig()
1111
public string BaseUrl { get; set; }
1212
public string ClearPassApiClient { get; set; }
1313
public string ClearPassCaId { get; set; }
14+
public bool Enabled { get; set; } = true;
1415
}
15-
}
16+
}

aruba-clearpass-caplugin/Constants.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class Config
88
public const string ClearPassApiClient = "ClearPassApiClient";
99
public const string ClientSecret = "ClientSecret";
1010
public const string ClearPassCaId = "ClearPassCaId";
11+
public const string Enabled = "Enabled";
1112
}
1213

1314
public class Products
@@ -24,4 +25,4 @@ public class ProductParams
2425
public const string NumberOfDaysValid = "NumberOfDaysValid";
2526
}
2627
}
27-
}
28+
}

0 commit comments

Comments
 (0)