public void CreateUserGeneratedSecurityPair_ReadAndDeleteIt_SecurityPairShouldGetDeleted() { ISecurityKeysApplicationService registrationService = (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"]; var systemGeneratedKey = registrationService.CreateSystemGeneratedKey(1); List <string> securityKeyPermissions = new List <string>(); IList <Permission> permissions = _permissionRepository.GetAllPermissions(); for (int i = 0; i < permissions.Count; i++) { securityKeyPermissions.Add(permissions[i].PermissionId); } CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(), DateTime.Today.AddDays(-1).ToString(), true, true, true, "123"); var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value); registrationService.DeleteSecurityKeyPair("123", systemGeneratedKey.Item1.Value); var getKeyPair = _securityKeysRepository.GetByKeyDescriptionAndUserId("123", 1); Assert.Null(getKeyPair); var getKeyPair1 = _securityKeysRepository.GetByApiKey(keys.ApiKey); Assert.Null(getKeyPair1); }
public void SecurityKeyGenerationService_TestsIfTheSecurityKeysAreGenerated_VerifiesThroughTheReturnedValues() { ISecurityKeysApplicationService registrationService = (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"]; Tuple <ApiKey, SecretKey, DateTime> securityKeys = registrationService.CreateSystemGeneratedKey(1); Assert.IsNotNull(securityKeys); Assert.IsNotNull(securityKeys.Item1); Assert.IsNotNull(securityKeys.Item2); Assert.IsNotNull(securityKeys.Item3); }
public void CreateUserGeneratedSecurityPair_IfNoPermissionIsAssigned_ArgumentNullExceptionShouldBeRaised() { ISecurityKeysApplicationService registrationService = (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"]; var systemGeneratedKey = registrationService.CreateSystemGeneratedKey(1); List <string> securityKeyPermissions = new List <string>(); CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(), DateTime.Today.AddDays(-1).ToString(), true, true, true, "123"); var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value); }
/// <summary> /// Login call by the user, logs user in if username and password are correct /// </summary> /// <returns></returns> public UserValidationEssentials Login(LoginCommand loginCommand) { if (loginCommand != null && !string.IsNullOrEmpty(loginCommand.Username) && !string.IsNullOrEmpty(loginCommand.Password)) { User user = _userRepository.GetUserByUserName(loginCommand.Username); if (user != null) { if (!user.IsActivationKeyUsed.Value) { throw new InvalidOperationException( "This account is not yet activated. Please activate the account before trying to login."); } if (_passwordEncryptionService.VerifyPassword(loginCommand.Password, user.Password)) { Tuple <bool, string> mfaAccessResponse = _mfaAuthorizationService.AuthorizeAccess(user.Id, MfaConstants.Login, loginCommand.MfaCode); // Check if the user has susbcribed for mfa authorization. If yes, check the Mfa Code if (mfaAccessResponse.Item1) { Tuple <ApiKey, SecretKey, DateTime> securityKeys = _securityKeysApplicationService.CreateSystemGeneratedKey(user.Id); user.LastLogin = DateTime.Now; _persistenceRepository.SaveUpdate(user); return(new UserValidationEssentials(mfaAccessResponse.Item1, mfaAccessResponse.Item2, securityKeys.Item1.Value, securityKeys.Item2.Value, user.AutoLogout, user.LastLogin)); } // If MFA authorization passes successfuly, return the user with the security keys else { return(new UserValidationEssentials(mfaAccessResponse.Item1, mfaAccessResponse.Item2, null, null, user.AutoLogout, user.LastLogin)); } } else { throw new InvalidCredentialException(string.Format("Incorrect password for username: {0}", loginCommand.Username)); } } else { throw new InvalidCredentialException(string.Format("Invalid username: {0}", loginCommand.Username)); } } else { throw new InvalidCredentialException("Invalid Username and/or Password."); } }
public void UpdateUserGeneratedSecurityPair_UpdatePermissionsAndSomeDescription_VerifyKeyPairIsReturnedAndPersistedSuccessfully() { ISecurityKeysApplicationService registrationService = (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"]; var systemGeneratedKey = registrationService.CreateSystemGeneratedKey(1); List <string> securityKeyPermissions = new List <string>(); IList <Permission> permissions = _permissionRepository.GetAllPermissions(); for (int i = 0; i < permissions.Count; i++) { securityKeyPermissions.Add(permissions[i].PermissionId); } CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(), DateTime.Today.AddDays(-1).ToString(), true, true, true, "123"); var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value); List <SecurityKeyPermissionsRepresentation> securityKeyPermissions2 = new List <SecurityKeyPermissionsRepresentation>(); for (int i = 0; i < permissions.Count; i++) { if (i % 2 == 0) { securityKeyPermissions2.Add(new SecurityKeyPermissionsRepresentation(false, permissions[i])); } else { securityKeyPermissions2.Add(new SecurityKeyPermissionsRepresentation(true, permissions[i])); } } UpdateUserGeneratedSecurityKeyPair update = new UpdateUserGeneratedSecurityKeyPair(keys.ApiKey, "456", false, false, true, "", "", securityKeyPermissions2.ToArray(), DateTime.Today.AddDays(3).ToString()); registrationService.UpdateSecurityKeyPair(update, keys.ApiKey); Assert.NotNull(keys); Assert.IsNotNullOrEmpty(keys.ApiKey); Assert.IsNotNullOrEmpty(keys.SecretKey); SecurityKeysPair persistedKeysPair = _securityKeysRepository.GetByApiKey(keys.ApiKey); Assert.NotNull(persistedKeysPair); Assert.AreEqual(persistedKeysPair.UserId, 1); Assert.AreEqual(persistedKeysPair.SystemGenerated, false); Assert.AreEqual(persistedKeysPair.ApiKey, keys.ApiKey); Assert.AreEqual(persistedKeysPair.SecretKey, keys.SecretKey); Assert.AreEqual(persistedKeysPair.KeyDescription, "456"); Assert.IsNotNullOrEmpty(persistedKeysPair.CreationDateTime.ToString()); Assert.AreEqual(persistedKeysPair.EnableStartDate, false); Assert.AreEqual(persistedKeysPair.EnableEndDate, false); Assert.AreEqual(persistedKeysPair.EnableExpirationDate, true); Assert.AreEqual(persistedKeysPair.ExpirationDate, DateTime.Today.AddDays(3)); }
public void CreateSystemGeneratedSecurityPair_IfUserNameIsProvided_VerifyKeyPairIsReturnedAndPersistedSuccessfully() { ISecurityKeysApplicationService registrationService = (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"]; var keys = registrationService.CreateSystemGeneratedKey(1); Assert.NotNull(keys); Assert.IsNotNullOrEmpty(keys.Item1.Value); Assert.IsNotNullOrEmpty(keys.Item2.Value); SecurityKeysPair persistedKeysPair = _securityKeysRepository.GetByApiKey(keys.Item1.Value); Assert.NotNull(persistedKeysPair); Assert.AreEqual(persistedKeysPair.UserId, 1); Assert.AreEqual(persistedKeysPair.SystemGenerated, true); Assert.AreEqual(persistedKeysPair.ApiKey, keys.Item1.Value); Assert.AreEqual(persistedKeysPair.SecretKey, keys.Item2.Value); Assert.IsNotNullOrEmpty(persistedKeysPair.KeyDescription); Assert.IsNotNullOrEmpty(persistedKeysPair.CreationDateTime.ToString()); }
public void CreateUserGeneratedSecurityPair_IfAllRequiredParametersAreProvided_VerifyKeyPairIsReturnedAndPersistedSuccessfully() { ISecurityKeysApplicationService registrationService = (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"]; var systemGeneratedKey = registrationService.CreateSystemGeneratedKey(1); List <string> securityKeyPermissions = new List <string>(); IList <Permission> permissions = _permissionRepository.GetAllPermissions(); for (int i = 0; i < permissions.Count; i++) { securityKeyPermissions.Add(permissions[i].PermissionId); } CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(), DateTime.Today.AddDays(-1).ToString(), true, true, true, "123"); var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value); Assert.NotNull(keys); Assert.IsNotNullOrEmpty(keys.ApiKey); Assert.IsNotNullOrEmpty(keys.SecretKey); SecurityKeysPair persistedKeysPair = _securityKeysRepository.GetByApiKey(keys.ApiKey); Assert.NotNull(persistedKeysPair); Assert.AreEqual(persistedKeysPair.UserId, 1); Assert.AreEqual(persistedKeysPair.SystemGenerated, false); Assert.AreEqual(persistedKeysPair.ApiKey, keys.ApiKey); Assert.AreEqual(persistedKeysPair.SecretKey, keys.SecretKey); Assert.IsNotNullOrEmpty(persistedKeysPair.KeyDescription); Assert.IsNotNullOrEmpty(persistedKeysPair.CreationDateTime.ToString()); Assert.AreEqual(persistedKeysPair.EnableStartDate, true); Assert.AreEqual(persistedKeysPair.EnableEndDate, true); Assert.AreEqual(persistedKeysPair.EnableExpirationDate, true); Assert.AreEqual(persistedKeysPair.ExpirationDate, DateTime.Today.AddDays(1)); Assert.AreEqual(persistedKeysPair.StartDate, DateTime.Today.AddDays(-2)); Assert.AreEqual(persistedKeysPair.EndDate, DateTime.Today.AddDays(-1)); ValidatePermissions(persistedKeysPair, securityKeyPermissions); }
public void CreateUserGeneratedSecurityPair_IfKeyDescriptionAlreadyExists_ArgumentExceptionShouldBeRaised() { ISecurityKeysApplicationService registrationService = (ISecurityKeysApplicationService)_applicationContext["SecurityKeysApplicationService"]; var systemGeneratedKey = registrationService.CreateSystemGeneratedKey(1); List <string> securityKeyPermissions = new List <string>(); IList <Permission> permissions = _permissionRepository.GetAllPermissions(); for (int i = 0; i < permissions.Count; i++) { securityKeyPermissions.Add(permissions[i].PermissionId); } CreateUserGeneratedSecurityKeyPair command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(), DateTime.Today.AddDays(-1).ToString(), true, true, true, "123"); var keys = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value); command = new CreateUserGeneratedSecurityKeyPair(securityKeyPermissions, DateTime.Today.AddDays(1).ToString(), DateTime.Today.AddDays(-2).ToString(), DateTime.Today.AddDays(-1).ToString(), true, true, true, "123"); var keys1 = registrationService.CreateUserGeneratedKey(command, systemGeneratedKey.Item1.Value); }