Skip to content

Commit efa0bae

Browse files
checking for null responses, specifying culture when parsing datetime.
1 parent 1f0ae06 commit efa0bae

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

hashicorp-vault-cagateway/Client/HashicorpVaultClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public async Task<List<string>> GetAllCertSerialNumbers()
205205
try
206206
{
207207
var res = await _vaultHttp.GetAsync<WrappedResponse<KeyedList>>("certs/?list=true");
208-
return res.Data?.Entries;
208+
return res?.Data?.Entries;
209209
}
210210
catch (Exception ex)
211211
{
@@ -222,7 +222,7 @@ private async Task<List<string>> GetRevokedSerialNumbers()
222222
try
223223
{
224224
var res = await _vaultHttp.GetAsync<WrappedResponse<KeyedList>>("certs/revoked");
225-
keys = res.Data?.Entries;
225+
keys = res?.Data?.Entries;
226226
}
227227
catch (Exception ex)
228228
{

hashicorp-vault-cagateway/Client/VaultHttp.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public async Task<T> PostAsync<T>(string path, dynamic parameters = default)
123123
if (parameters != null)
124124
{
125125
string serializedParams = JsonSerializer.Serialize(parameters);
126-
logger.LogTrace($"deserialized parameters (from {parameters.GetType()?.Name}): {serializedParams}");
126+
logger.LogTrace($"serialized parameters (from {parameters.GetType()?.Name}): {serializedParams}");
127127
request.AddJsonBody(serializedParams);
128128
}
129129

hashicorp-vault-cagateway/HashicorpVaultCAConnector.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
using System.Threading;
2020
using System.Threading.Tasks;
2121
using System.Reflection;
22+
using System.Runtime.ConstrainedExecution;
2223

2324
namespace Keyfactor.Extensions.CAPlugin.HashicorpVault
2425
{
@@ -315,7 +316,7 @@ public async Task Synchronize(BlockingCollection<AnyCAPluginCertificate> blockin
315316
Status = !string.IsNullOrEmpty(certFromVault.RevocationTime) ? (int)EndEntityStatus.REVOKED : (int)EndEntityStatus.GENERATED,
316317
RevocationDate = !string.IsNullOrEmpty(certFromVault.RevocationTime) ? DateTime.Parse(certFromVault.RevocationTime) : null
317318
};
318-
319+
319320
// if we were able to get the role name from metadata, we include it
320321
if (!string.IsNullOrEmpty(metaData?.Role))
321322
{
@@ -342,19 +343,19 @@ public async Task Synchronize(BlockingCollection<AnyCAPluginCertificate> blockin
342343
var revoked = !string.IsNullOrEmpty(certFromVault.RevocationTime);
343344
logger.LogTrace($"revocationTime = {certFromVault.RevocationTime} so the cert will be marked as{(revoked ? "" : " not")} revoked.");
344345
var vaultStatus = revoked ? (int)EndEntityStatus.REVOKED : (int)EndEntityStatus.GENERATED;
345-
346+
346347
if (vaultStatus != dbStatus) // if there is a mismatch, we need to update
347348
{
348349
var newCert = new AnyCAPluginCertificate
349350
{
350351
CARequestID = trackingId,
351352
Certificate = certFromVault.Certificate,
352353
Status = vaultStatus,
353-
RevocationDate = !string.IsNullOrEmpty(certFromVault.RevocationTime) ? DateTime.Parse(certFromVault.RevocationTime) : null,
354+
RevocationDate = certFromVault.RevocationTime != null ? DateTime.Parse(certFromVault.RevocationTime.ToString(), System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AdjustToUniversal | System.Globalization.DateTimeStyles.AssumeUniversal) : null
354355
// ProductID is not available via the API after the initial issuance. we do not want to overwrite
355-
};
356-
357-
blockingBuffer.Add(newCert);
356+
};
357+
358+
blockingBuffer.Add(newCert, cancelToken);
358359
}
359360
}
360361
count++;

0 commit comments

Comments
 (0)