Exemplo n.º 1
0
        public async Task should_be_able_to_Create_a_key_without_applications_mapped()
        {
            var cmd = new CreateApiKey("Mofo", Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("N"));
            var bus = Substitute.For <IEventBus>();

            var sut = new CreateApiKeyHandler(_uow, bus);
            await sut.ExecuteAsync(cmd);

            var repos     = new ApiKeyRepository(_uow);
            var generated = await repos.GetByKeyAsync(cmd.ApiKey);

            generated.Should().NotBeNull();
            generated.Claims.Should().BeEmpty();
        }
        public async Task Should_be_able_to_Create_key()
        {
            var cmd = new CreateApiKey("Mofo", Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("N"),
                                       new[] { _applicationId });
            var bus = Substitute.For <IEventBus>();

            var sut = new CreateApiKeyHandler(_uow, bus);
            await sut.ExecuteAsync(cmd);

            var repos     = new ApiKeyRepository(_uow);
            var generated = await repos.GetByKeyAsync(cmd.ApiKey);

            generated.Should().NotBeNull();
            generated.Claims.First().Value.Should().BeEquivalentTo(_applicationId.ToString());
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Create([FromBody] CreateApiKey request)
        {
            var key = new SensateApiKey {
                Id           = Guid.NewGuid().ToString(),
                UserId       = this.CurrentUser.Id,
                CreatedOn    = DateTime.Now.ToUniversalTime(),
                Revoked      = false,
                Type         = ApiKeyType.ApiKey,
                ReadOnly     = request.ReadOnly,
                Name         = request.Name,
                RequestCount = 0
            };

            await this._keys.CreateAsync(key).AwaitBackground();

            return(this.CreatedAtAction("CreateApiKey", key));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Create(CreateViewModel model)
        {
            model.Applications = await GetMyApplications();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var apiKey       = Guid.NewGuid().ToString("N");
            var sharedSecret = Guid.NewGuid().ToString("N");
            var apps         = model.SelectedApplications == null
                ? new int[0]
                : model.SelectedApplications.Select(int.Parse).ToArray();
            var cmd = new CreateApiKey(model.ApplicationName, apiKey, sharedSecret, apps);
            await _commandBus.ExecuteAsync(cmd);

            return(RedirectToAction("Created", new { apiKey, sharedSecret }));
        }
        public async Task Should_be_able_to_Create_key()
        {
            var cmd = new CreateApiKey("Mofo", Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("N"),
                                       new[] { _applicationId });
            var bus = Substitute.For <IMessageBus>();
            var ctx = Substitute.For <IMessageContext>();

            using (var uow = CreateUnitOfWork())
            {
                var sut = new CreateApiKeyHandler(uow, bus);
                await sut.HandleAsync(ctx, cmd);

                var repos     = new ApiKeyRepository(uow);
                var generated = await repos.GetByKeyAsync(cmd.ApiKey);

                generated.Should().NotBeNull();
                generated.Claims.First().Value.Should().BeEquivalentTo(_applicationId.ToString());
                uow.SaveChanges();
            }
        }
        public async Task Should_be_able_to_Create_a_key_without_applications_mapped()
        {
            var cmd = new CreateApiKey("Mofo", Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("N"));
            var bus = Substitute.For <IMessageBus>();
            var ctx = Substitute.For <IMessageContext>();

            using (var uow = CreateUnitOfWork())
            {
                var sut = new CreateApiKeyHandler(uow, bus);
                await sut.HandleAsync(ctx, cmd);

                var repos     = new ApiKeyRepository(uow);
                var generated = await repos.GetByKeyAsync(cmd.ApiKey);

                generated.Should().NotBeNull();
                generated.Claims.Should().NotBeEmpty("because keys without appIds are universal");

                uow.SaveChanges();
            }
        }
Exemplo n.º 7
0
 public async Task HandleAsync(CreateApiKey command)
 => await ProcessAsync(command);