public XmlElement GetRequestResponseElement(string requestPath, string data, HttpVerb verb) { IWebRequest request = _webRequestFactory.CreateWebRequest(string.Format("{0}/{1}", Url, requestPath)); request.Method = verb; request.BasicAuthorization = _authorization; if (verb != HttpVerb.Get) { request.RequestText = data; } return(request.Response.DocumentElement); }
/// <summary> /// Generates a disposable <see cref="IWebRequest"/> object for simplified HTTP web request /// access inside a plugin. /// </summary> /// <param name="address">The URI of the web resource.</param> /// <param name="dependencyName">A dependence name to use for telemetry tracking.</param> /// <returns></returns> public virtual IWebRequest CreateWebRequest(Uri address, string dependencyName = null) { if (_webRequestFactory is null) { _webRequestFactory = this.Container.Resolve <IWebRequestFactory>(); } return(_webRequestFactory.CreateWebRequest(address, dependencyName)); }
/// <summary> /// Generates a dictionary loaded with the ids of all enabled secrets in the key vault indexed by the secret name. /// </summary> /// <param name="tenantId"></param> /// <param name="clientId"></param> /// <param name="clientSecret"></param> /// <param name="vaultName"></param> /// <returns></returns> private IReadOnlyDictionary <string, string> GetSecretIds(string tenantId, string clientId, string clientSecret, string vaultName) { var dictionary = new Dictionary <string, string>(); var token = GetToken(tenantId, clientId, clientSecret); string nextLink = null; var request = new GetSecretListRequest(Serializer, token, vaultName); using (var webRequest = WebRequestFactory.CreateWebRequest(request.ApiEndpoint)) { var response = request.Execute(webRequest); nextLink = response.nextLink; foreach (var secretItem in response.value.Where(s => s.attributes.enabled)) { dictionary.Add(ParseKeyFromId(secretItem.id), secretItem.id); } } while (!string.IsNullOrEmpty(nextLink)) { var nextLinkRequest = new GetNextLinkRequest(Serializer, token, nextLink); using (var webRequest = WebRequestFactory.CreateWebRequest(nextLinkRequest.ApiEndpoint)) { var response = nextLinkRequest.Execute(webRequest); nextLink = response.nextLink; foreach (var secretItem in response.value.Where(s => s.attributes.enabled)) { dictionary.Add( ParseKeyFromId(secretItem.id), secretItem.id); } } } return(dictionary); }
private void GetSecret(string key, AuthToken token = null) { if (token is null) { token = GetToken(); } var versionRequest = new GetSecretVersionsRequest(Serializer, token, VaultName, key); var webRequest = WebRequestFactory.CreateWebRequest(versionRequest.ApiEndpoint); var response = versionRequest.Execute(webRequest); if (response is null || response.value.Length == 0) { Secrets.Add(key, null); return; } var curentVersion = response.value .Where(v => v.attributes.enabled) .OrderByDescending(v => v.attributes.created) .FirstOrDefault()?.id; if (string.IsNullOrEmpty(curentVersion)) { Secrets.Add(key, null); return; } var secretRequest = new GetSecretRequest(Serializer, token, curentVersion); webRequest = WebRequestFactory.CreateWebRequest(secretRequest.ApiEndpoint); var value = secretRequest.Execute(webRequest)?.value; Secrets.Add(key, value); }