private static string GetAndValidateApplianceAddress() { string applianceAddress = null; JObject response = null; var isValid = false; while (response == null && !isValid) { applianceAddress = GetSettingInput("Safeguard Appliance Address", SafeguardAppliance); if (string.IsNullOrEmpty(applianceAddress)) { return(applianceAddress); } isValid = SafeguardRestApiClient.ValidateSafeguardApplianceAddress(applianceAddress, out response); } Console.WriteLine($"\tAppliance {response["Name"]} was found at {applianceAddress}"); return(applianceAddress); }
bool InitSafeguardClient() { Log.Info("Initializing Safeguard Client"); if (Config.SafeguardAppliance == null) { Log.Error("Config value for SafeguardAppliance must be set hostname or IP address"); return(false); } ISafeguardConnection safeguardConnection = null; try { if (Config.SafeguardCertificateThumbprint != null) { safeguardConnection = Safeguard.Connect(Config.SafeguardAppliance, Config.SafeguardCertificateThumbprint, 3, true); } else if (Config.SafeguardCertificateFile != null) { safeguardConnection = Safeguard.Connect(Config.SafeguardAppliance, Config.SafeguardCertificateFile, Config.SafeguardCertificatePassword, 3, true); } else if (Config.SafeguardUsername != null && Config.SafeguardPassword != null) { safeguardConnection = Safeguard.Connect(Config.SafeguardAppliance, "Local", Config.SafeguardUsername, Config.SafeguardPassword, 3, true); } else { Log.Error("Missing Safeguard credentials. Please edit configuration to set one of: SafeguardCertificateFile, SafeguardCertificateThumbprint or SafeguardUsername"); return(false); } SafeguardClient = new SafeguardRestApiClient(safeguardConnection); var user = SafeguardClient.GetCurrentUser(); Log.Info("Connected to Safeguard as: " + user.Username); if (!user.AdminRoles.Contains("Auditor")) { Log.Error($"{user.Username} does not have AdminRole: \"Auditor\""); return(false); } if (user.AdminRoles.Count() > 1) { Log.Warn($"{user.Username} has additional Admin Roles. Only \"Auditor\" is required."); } var eventSubscriptions = SafeguardClient.GetEventSubscriptionsForUser(user); if (eventSubscriptions.Where(e => e.Description == "ARSJITAccess").Count() == 0) { var eventSubscription = new SafeguardEventSubscription() { UserId = user.Id, Description = "ARSJITAccess", Type = "Signalr", Events = Events }; SafeguardClient.CreateEventSubscription(eventSubscription); } return(true); } catch (SafeguardDotNetException e) { Log.Error(e.Message); } return(false); }