public async Task Authorize(string username, string password) { using (var keycloak = new KeyCloalClient()) { var token = await keycloak.GetToken(username, password); DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token); } }
public static async Task <Guid> AddBlob(this OsdrTestHarness harness, string bucket, string fileName, IDictionary <string, object> metadata = null) { var path = Path.Combine(Directory.GetCurrentDirectory(), "Resources", fileName); if (!System.IO.File.Exists(path)) { throw new FileNotFoundException(path); } var keycloak = new KeyCloalClient(); var token = await keycloak.GetToken("john", "qqq123"); HttpClient blobStorage = new HttpClient(); blobStorage.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token); var blobStorateUri = new Uri("http://localhost:18006/api/blobs/"); //attachments var requestContent = new MultipartFormDataContent(); if (metadata != null && metadata.Any()) { foreach (var key in metadata.Keys) { requestContent.Add(new StringContent(metadata[key].ToString()), key); } } StreamContent streamContent = new StreamContent(File.OpenRead(path)); var fileContent = new ByteArrayContent(await streamContent.ReadAsByteArrayAsync()); fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream"); requestContent.Add(fileContent, "File", fileName); HttpResponseMessage response = await blobStorage.PostAsync(new Uri(blobStorateUri, bucket), requestContent); var guids = JsonConvert.DeserializeObject <string[]>(await response.Content.ReadAsStringAsync()).Select(s => Guid.Parse(s)); //var blobId = await harness.BlobStorage.AddFileAsync(fileName, System.IO.File.OpenRead(path), "application/octet-stream", bucket, metadata); return(guids.First()); }