From 41de1cd024cfe4d802df24d702094648490efc2c Mon Sep 17 00:00:00 2001 From: leefine02 Date: Wed, 14 Aug 2024 12:35:58 +0000 Subject: [PATCH] ab#61881 --- .../CitrixAdcStore.cs | 7 ++++++- CitrixAdcOrchestratorJobExtension/Inventory.cs | 17 +++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs b/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs index be56c46..0b4ad07 100644 --- a/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs +++ b/CitrixAdcOrchestratorJobExtension/CitrixAdcStore.cs @@ -733,7 +733,12 @@ public X509Certificate2 GetX509Certificate(string fileLocation, out bool hasKey) try { var fileNameWithoutExtension = fileLocation; - if (fileLocation.EndsWith(".crt",StringComparison.CurrentCultureIgnoreCase) || fileLocation.EndsWith(".pem", StringComparison.CurrentCultureIgnoreCase) || fileLocation.EndsWith(".pfx", StringComparison.CurrentCultureIgnoreCase) || fileLocation.EndsWith(".cert", StringComparison.CurrentCultureIgnoreCase) || fileLocation.EndsWith(".der", StringComparison.CurrentCultureIgnoreCase)) + if (fileLocation.EndsWith(".crt",StringComparison.CurrentCultureIgnoreCase) || + fileLocation.EndsWith(".cer", StringComparison.CurrentCultureIgnoreCase) || + fileLocation.EndsWith(".pem", StringComparison.CurrentCultureIgnoreCase) || + fileLocation.EndsWith(".pfx", StringComparison.CurrentCultureIgnoreCase) || + fileLocation.EndsWith(".cert", StringComparison.CurrentCultureIgnoreCase) || + fileLocation.EndsWith(".der", StringComparison.CurrentCultureIgnoreCase)) { fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileLocation); } diff --git a/CitrixAdcOrchestratorJobExtension/Inventory.cs b/CitrixAdcOrchestratorJobExtension/Inventory.cs index 0f120c3..cf08412 100644 --- a/CitrixAdcOrchestratorJobExtension/Inventory.cs +++ b/CitrixAdcOrchestratorJobExtension/Inventory.cs @@ -77,6 +77,8 @@ private string ResolvePamField(string name, string value) private JobResult ProcessJob(CitrixAdcStore store, InventoryJobConfiguration jobConfiguration, SubmitInventoryUpdate submitInventoryUpdate) { _logger.LogDebug("Begin New Bindings Fix Inventory..."); + _logger.LogTrace($"##### ClientMachine: {jobConfiguration.CertificateStoreDetails.ClientMachine}"); + _logger.LogTrace($"##### StorePath:{jobConfiguration.CertificateStoreDetails.StorePath}"); List inventory = new List(); @@ -99,6 +101,9 @@ private JobResult ProcessJob(CitrixAdcStore store, InventoryJobConfiguration job //create a lookup by cert(alias) for certkey identifier Dictionary keyPairMap = keyPairList.ToDictionary(i => i.cert, i => i.certkey); + foreach (KeyValuePair keyPair in keyPairMap) + _logger.LogTrace($"##### keyPairMap item: Key:{keyPair.Key}, Value:{keyPair.Value}"); + _logger.LogDebug("For each file get contents by alias..."); foreach (string s in contentsToCheck) { @@ -107,22 +112,30 @@ private JobResult ProcessJob(CitrixAdcStore store, InventoryJobConfiguration job if (x == null) continue; + _logger.LogTrace($"##### privateKeyEntry: {privateKeyEntry.ToString()}"); if (!privateKeyEntry) { var certKey = keyPairList.FirstOrDefault(p => p.cert == s); + _logger.LogTrace($"##### certKey: {certKey}"); privateKeyEntry = certKey != null && !string.IsNullOrEmpty(certKey.key); } + _logger.LogTrace($"##### privateKeyEntry: {privateKeyEntry.ToString()}"); processedAliases.Add(s); Dictionary parameters = new Dictionary(); - var containsKeyWithPath = keyPairMap.ContainsKey(store.StorePath + "/" + s); + string tempStorePath = store.StorePath.Substring(store.StorePath.Length-1,1) == "/" ? store.StorePath : store.StorePath + "/"; + var containsKeyWithPath = keyPairMap.ContainsKey(tempStorePath + s); var containsKey = keyPairMap.ContainsKey(s); + _logger.LogTrace($"##### containsKeyWithPath: {containsKeyWithPath.ToString()}"); + _logger.LogTrace($"##### containsKey: {containsKey.ToString()}"); + + if (containsKey || containsKeyWithPath) { - var keyPairName = containsKeyWithPath ? keyPairMap[store.StorePath + "/" + s] : keyPairMap[s]; + var keyPairName = containsKeyWithPath ? keyPairMap[tempStorePath + s] : keyPairMap[s]; _logger.LogDebug($"Found keyPairName: {keyPairName}"); parameters.Add("keyPairName", keyPairName);