public async Task GivenTheFollowingApiResourcesExist(Table table) { foreach (TableRow tableRow in table.Rows) { String resourceName = SpecflowTableHelper.GetStringRowValue(tableRow, "ResourceName"); String displayName = SpecflowTableHelper.GetStringRowValue(tableRow, "DisplayName"); String secret = SpecflowTableHelper.GetStringRowValue(tableRow, "Secret"); String scopes = SpecflowTableHelper.GetStringRowValue(tableRow, "Scopes"); String userClaims = SpecflowTableHelper.GetStringRowValue(tableRow, "UserClaims"); List <String> splitScopes = scopes.Split(',').ToList(); List <String> splitUserClaims = userClaims.Split(',').ToList(); CreateApiResourceRequest createApiResourceRequest = new CreateApiResourceRequest { Description = String.Empty, DisplayName = displayName, Name = resourceName, Scopes = new List <String>(), Secret = secret, UserClaims = new List <String>() }; splitScopes.ForEach(a => { createApiResourceRequest.Scopes.Add(a.Trim()); }); splitUserClaims.ForEach(a => { createApiResourceRequest.UserClaims.Add(a.Trim()); }); CreateApiResourceResponse createApiResourceResponse = await this .TestingContext.DockerHelper.SecurityServiceClient .CreateApiResource(createApiResourceRequest, CancellationToken.None).ConfigureAwait(false); createApiResourceResponse.ApiResourceName.ShouldBe(resourceName); } }
/// <summary> /// Creates the API resource. /// </summary> /// <param name="createApiResourceRequest">The create API resource request.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public async Task <CreateApiResourceResponse> CreateApiResource(CreateApiResourceRequest createApiResourceRequest, CancellationToken cancellationToken) { CreateApiResourceResponse response = null; String requestUri = this.BuildRequestUrl("/api/apiresources"); try { String requestSerialised = JsonConvert.SerializeObject(createApiResourceRequest); StringContent httpContent = new StringContent(requestSerialised, Encoding.UTF8, "application/json"); // Add the access token to the client headers //this.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); // Make the Http Call here HttpResponseMessage httpResponse = await this.HttpClient.PostAsync(requestUri, httpContent, cancellationToken); // Process the response String content = await this.HandleResponse(httpResponse, cancellationToken); // call was successful so now deserialise the body to the response object response = JsonConvert.DeserializeObject <CreateApiResourceResponse>(content); } catch (Exception ex) { // An exception has occurred, add some additional information to the message Exception exception = new Exception($"Error creating api resource {createApiResourceRequest.Name}.", ex); throw exception; } return(response); }
private async Task <CreateApiResourceResponse> CreateApiResource(CreateApiResourceRequest createApiResourceRequest, CancellationToken cancellationToken) { CreateApiResourceResponse createApiResourceResponse = await this.TestingContext.DockerHelper.SecurityServiceClient.CreateApiResource(createApiResourceRequest, cancellationToken).ConfigureAwait(false); return(createApiResourceResponse); }
public async Task GivenICreateTheFollowingApiResources(Table table) { foreach (TableRow tableRow in table.Rows) { // Get the scopes String scopes = SpecflowTableHelper.GetStringRowValue(tableRow, "Scopes"); String userClaims = SpecflowTableHelper.GetStringRowValue(tableRow, "UserClaims"); scopes = scopes.Replace("[id]", this.TestingContext.DockerHelper.TestId.ToString("N")); CreateApiResourceRequest createApiResourceRequest = new CreateApiResourceRequest { Secret = SpecflowTableHelper.GetStringRowValue(tableRow, "Secret"), Name = SpecflowTableHelper.GetStringRowValue(tableRow, "Name").Replace("[id]", this.TestingContext.DockerHelper.TestId.ToString("N")), Scopes = string.IsNullOrEmpty(scopes) ? null : scopes.Split(",").ToList(), UserClaims = string.IsNullOrEmpty(userClaims) ? null : userClaims.Split(",").ToList(), Description = SpecflowTableHelper.GetStringRowValue(tableRow, "Description"), DisplayName = SpecflowTableHelper.GetStringRowValue(tableRow, "DisplayName") }; CreateApiResourceResponse createApiResourceResponse = await this.CreateApiResource(createApiResourceRequest, CancellationToken.None).ConfigureAwait(false); createApiResourceResponse.ShouldNotBeNull(); createApiResourceResponse.ApiResourceName.ShouldNotBeNullOrEmpty(); this.TestingContext.ApiResources.Add(createApiResourceResponse.ApiResourceName); } }
public async Task <IActionResult> CreateApiResource([FromBody] CreateApiResourceRequest createApiResourceRequest, CancellationToken cancellationToken) { String apiResourceName = await this.Manager.CreateApiResource(createApiResourceRequest.Name, createApiResourceRequest.DisplayName, createApiResourceRequest.Description, createApiResourceRequest.Secret, createApiResourceRequest.Scopes, createApiResourceRequest.UserClaims, cancellationToken); // return the result return(this.Created($"{ApiResourceController.ControllerRoute}/{apiResourceName}", new CreateApiResourceResponse { ApiResourceName = apiResourceName })); }