public async Task ExecuteAsync(CacheItem cacheItem) { if (string.IsNullOrEmpty(cacheItem.Fido2CredentialId)) { return; } var userExists = await _checkUserExistenceCommand.ExecuteAsync(new UserIdentification { AuthenticatorType = ExtAuthenticatorType.Fido2, UserIdentifier = cacheItem.Fido2CredentialId }); if (userExists && cacheItem.ChallengeType != ChallengeType.Login) { throw new OwnIdException(ErrorType.UserAlreadyExists); } if (!userExists) { await _cacheItemRepository.UpdateAsync(cacheItem.Context, item => { item.Fido2CredentialId = null; }); } }
public async Task Execute_Null_UserIdentifier() { var fixture = new Fixture().SetOwnidSpecificSettings(); var userHandler = fixture.Create <Mock <IUserHandlerAdapter> >(); var command = new CheckUserExistenceCommand(userHandler.Object); var result = await command.ExecuteAsync(new UserIdentification()); userHandler.VerifyNoOtherCalls(); result.Should().BeFalse(); }
public async Task Execute_Null_AuthenticatorType() { var fixture = new Fixture().SetOwnidSpecificSettings(); var userHandler = fixture.Create <Mock <IUserHandlerAdapter> >(); var command = new CheckUserExistenceCommand(userHandler.Object); var userId = fixture.Create <string>(); userHandler.Setup(x => x.IsUserExistsAsync(It.Is <string>(v => userId == v))) .Returns(Task.FromResult(true)); var result = await command.ExecuteAsync(new UserIdentification { UserIdentifier = userId }); result.Should().Be(true); }
protected override async Task <ITransitionResult> ExecuteInternalAsync(TransitionInput <UserIdentification> input, CacheItem relatedItem) { var result = await _checkUserExistenceCommand.ExecuteAsync(input.Data); if (result) { throw new OwnIdException(ErrorType.UserAlreadyExists); } var composeInfo = new BaseJwtComposeInfo(input) { Behavior = GetNextBehaviorFunc(input, relatedItem) }; var jwt = JwtComposer.GenerateBaseStepJwt(composeInfo); return(new JwtContainer(jwt)); }