From a8d5681e2722a90cb03771cb36a294703e649f8b Mon Sep 17 00:00:00 2001 From: Stanimir Penkov Date: Wed, 24 Oct 2018 17:15:44 +0300 Subject: [PATCH 1/4] NY-4584: Remove backup authentication provider - update requests Signed-off-by: Stanimir Penkov --- .../account/components/StatementsPool.java | 6 ------ .../AccountRepositoryAdditionalImpl.java | 17 ++--------------- 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/src/main/java/biz/nynja/account/components/StatementsPool.java b/src/main/java/biz/nynja/account/components/StatementsPool.java index 5ee4b81..ba8c9d6 100644 --- a/src/main/java/biz/nynja/account/components/StatementsPool.java +++ b/src/main/java/biz/nynja/account/components/StatementsPool.java @@ -55,12 +55,6 @@ public class StatementsPool { return bound; } - public BoundStatement deleteBackupAuthenticationProviderFromProfile(UUID profileId) { - String cql = "DELETE backupauthenticationprovider FROM profile WHERE profileid = ? ; "; - BoundStatement bound = preparedStatementsCache.getPreparedStatement(cql).bind(profileId); - return bound; - } - public BoundStatement deleteCreationProviderFromAccount(UUID accountId) { String cql = "DELETE authenticationprovidertype, authenticationprovider FROM account WHERE accountid = ? ;"; BoundStatement bound = preparedStatementsCache.getPreparedStatement(cql).bind(accountId); diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index 7a867ec..044efbf 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -328,12 +328,6 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio private void updateProfileData(CassandraBatchOperations batchOps, UpdateProfileRequest request, Profile existingProfile, Long lastUpdateTimestamp) { Profile updatedProfile = existingProfile; - if (!request.getBackupAuthProvider().getAuthenticationProvider().trim().isEmpty()) { - updatedProfile.setBackupAuthenticationProvider( - AuthenticationProvider.createAuthenticationProviderFromProto(request.getBackupAuthProvider())); - } else { - updatedProfile.setBackupAuthenticationProvider(null); - } updatedProfile.setPasscode(request.getPasscode()); if (!request.getDefaultAccountId().trim().isEmpty()) { updatedProfile.setDefaultAccount(UUID.fromString(request.getDefaultAccountId())); @@ -594,21 +588,14 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio authProvider.getType()); batch.add(st2); - // The requested authentication provider is set as a backup provider. We have to delete the reference. - if (profile.getBackupAuthenticationProvider() != null - && profile.getBackupAuthenticationProvider().equals(authProvider)) { - BoundStatement st3 = statementsPool.deleteBackupAuthenticationProviderFromProfile(profile.getProfileId()); - batch.add(st3); - } - // Check if there is an account, created using this authentication provider Account account = accountServiceHelper.getAccountByAuthenticationProviderHelper(authProvider.getValue(), authProvider.getType()); // Delete authentication provider from account if (account != null) { - BoundStatement st4 = statementsPool.deleteCreationProviderFromAccount(account.getAccountId()); - batch.add(st4); + BoundStatement st3 = statementsPool.deleteCreationProviderFromAccount(account.getAccountId()); + batch.add(st3); } rs = session.execute(batch); -- GitLab From 1a4ad2824072530223b8e4563324f9369a167408 Mon Sep 17 00:00:00 2001 From: Stanimir Penkov Date: Wed, 24 Oct 2018 18:21:01 +0300 Subject: [PATCH 2/4] NY-4583: Remove backup authentication provider from profile in DB Signed-off-by: Stanimir Penkov --- .../biz/nynja/account/models/Profile.java | 22 +------------------ 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/src/main/java/biz/nynja/account/models/Profile.java b/src/main/java/biz/nynja/account/models/Profile.java index 03ad158..f4e2844 100644 --- a/src/main/java/biz/nynja/account/models/Profile.java +++ b/src/main/java/biz/nynja/account/models/Profile.java @@ -17,7 +17,6 @@ public class Profile { @PrimaryKey private UUID profileId; private Set authenticationProviders; - private AuthenticationProvider backupAuthenticationProvider; private String passcode; private UUID defaultAccount; private Long creationTimestamp; @@ -71,21 +70,11 @@ public class Profile { this.defaultAccount = defaultAccount; } - public AuthenticationProvider getBackupAuthenticationProvider() { - return backupAuthenticationProvider; - } - - public void setBackupAuthenticationProvider(AuthenticationProvider backupAuthenticationProvider) { - this.backupAuthenticationProvider = backupAuthenticationProvider; - } - @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((authenticationProviders == null) ? 0 : authenticationProviders.hashCode()); - result = prime * result - + ((backupAuthenticationProvider == null) ? 0 : backupAuthenticationProvider.hashCode()); result = prime * result + ((creationTimestamp == null) ? 0 : creationTimestamp.hashCode()); result = prime * result + ((defaultAccount == null) ? 0 : defaultAccount.hashCode()); result = prime * result + ((lastUpdateTimestamp == null) ? 0 : lastUpdateTimestamp.hashCode()); @@ -108,11 +97,6 @@ public class Profile { return false; } else if (!authenticationProviders.equals(other.authenticationProviders)) return false; - if (backupAuthenticationProvider == null) { - if (other.backupAuthenticationProvider != null) - return false; - } else if (!backupAuthenticationProvider.equals(other.backupAuthenticationProvider)) - return false; if (creationTimestamp == null) { if (other.creationTimestamp != null) return false; @@ -146,8 +130,7 @@ public class Profile { return new StringBuilder("Profile [profileId=").append(profileId).append(", authenticationProviders=") .append(authenticationProviders).append(", creationTimestamp=").append(creationTimestamp) .append(", lastUpdateTimestamp=").append(lastUpdateTimestamp).append(", passcode=******") - .append(", defaultAccount=").append(defaultAccount).append(", backupAuthenticationProvider=") - .append(backupAuthenticationProvider).append("]").toString(); + .append(", defaultAccount=").append(defaultAccount).append("]").toString(); } public ProfileDetails toProto() { @@ -161,9 +144,6 @@ public class Profile { if (getDefaultAccount() != null) { builder.setDefaultAccountId(getDefaultAccount().toString()); } - if (getBackupAuthenticationProvider() != null) { - builder.setBackupAuthProvider(getBackupAuthenticationProvider().toProto()); - } if (getAuthenticationProviders() != null) { for (AuthenticationProvider authenticationProvider : authenticationProviders) { builder.addAuthProviders(authenticationProvider.toProto()); -- GitLab From f7fed7b98b9973c52a2425b857eeee8a5e7acbf3 Mon Sep 17 00:00:00 2001 From: Stanimir Penkov Date: Thu, 25 Oct 2018 11:53:19 +0300 Subject: [PATCH 3/4] NY-4585: Remove backup authentication provider - update unit tests Signed-off-by: Stanimir Penkov --- .../account/services/AccountServiceTests.java | 25 ------------------- .../java/biz/nynja/account/utils/Util.java | 2 -- 2 files changed, 27 deletions(-) diff --git a/src/test/java/biz/nynja/account/services/AccountServiceTests.java b/src/test/java/biz/nynja/account/services/AccountServiceTests.java index 8f86a3b..10c135a 100644 --- a/src/test/java/biz/nynja/account/services/AccountServiceTests.java +++ b/src/test/java/biz/nynja/account/services/AccountServiceTests.java @@ -443,34 +443,9 @@ public class AccountServiceTests extends GrpcServerTestBase { reply.getError().getCause().equals(Cause.ACCOUNT_ALREADY_CREATED)); } - @Test - public void testUpdateProfileAddBackupAuthProvider() throws ExecutionException, InterruptedException { - final UpdateProfileRequest request = UpdateProfileRequest.newBuilder().setProfileId(Util.PROFILE_ID.toString()) - .setBackupAuthProvider(AuthProviderDetails.newBuilder().setAuthenticationProvider(Util.PHONE_PROVIDER) - .setAuthenticationType(AuthenticationType.PHONE).build()) - .build(); - given(accountRepositoryAdditional.updateProfile(request)).willReturn(updatedProfile); - final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc - .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); - final ProfileResponse reply = accountServiceBlockingStub.updateProfile(request); - assertNotNull("Reply should not be null", reply); - assertTrue( - String.format("Reply should contain backup auth provider type '%s'", - request.getBackupAuthProvider().getAuthenticationType().name()), - reply.getProfileDetails().getBackupAuthProvider().getAuthenticationType().toString() - .equals(AuthenticationType.PHONE.name())); - assertTrue( - String.format("Reply should contain backup auth provider '%s'", - request.getBackupAuthProvider().getAuthenticationProvider()), - reply.getProfileDetails().getBackupAuthProvider().getAuthenticationProvider() - .equals(Util.PHONE_NUMBER)); - } - @Test public void testUpdateProfileMissingProfileId() throws ExecutionException, InterruptedException { final UpdateProfileRequest request = UpdateProfileRequest.newBuilder() - .setBackupAuthProvider(AuthProviderDetails.newBuilder().setAuthenticationProvider(Util.PHONE_NUMBER) - .setAuthenticationType(AuthenticationType.PHONE).build()) .build(); final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); diff --git a/src/test/java/biz/nynja/account/utils/Util.java b/src/test/java/biz/nynja/account/utils/Util.java index fe26e10..bf925b0 100644 --- a/src/test/java/biz/nynja/account/utils/Util.java +++ b/src/test/java/biz/nynja/account/utils/Util.java @@ -183,8 +183,6 @@ public class Util { Set authProviders = new HashSet(); authProviders.add(AuthenticationProvider.createAuthenticationProviderFromStrings(PHONE_TYPE, PHONE_NUMBER)); profile.setAuthenticationProviders(authProviders); - profile.setBackupAuthenticationProvider( - AuthenticationProvider.createAuthenticationProviderFromStrings(PHONE_TYPE, PHONE_NUMBER)); return profile; } -- GitLab From 2139d0ed5e32e3339ac59089202c3a9862687be5 Mon Sep 17 00:00:00 2001 From: Stanimir Penkov Date: Wed, 31 Oct 2018 12:14:05 +0200 Subject: [PATCH 4/4] NY-4584: Rename statements Signed-off-by: Stanimir Penkov --- .../AccountRepositoryAdditionalImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index 044efbf..20e224c 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -579,14 +579,14 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio ResultSet rs = null; // Remove authentication provider form list of authentication providers in profile - BoundStatement st1 = statementsPool.deleteAuthenicationProviderFromProfile(profile.getProfileId(), + BoundStatement deleteAuthProviderStatement= statementsPool.deleteAuthenicationProviderFromProfile(profile.getProfileId(), authProvider); - batch.add(st1); + batch.add(deleteAuthProviderStatement); // Remove record for profile by this authentication provider - BoundStatement st2 = statementsPool.deleteProfileByAuthenticationProvider(authProvider.getValue(), + BoundStatement deleteProfileStatement = statementsPool.deleteProfileByAuthenticationProvider(authProvider.getValue(), authProvider.getType()); - batch.add(st2); + batch.add(deleteProfileStatement); // Check if there is an account, created using this authentication provider Account account = accountServiceHelper.getAccountByAuthenticationProviderHelper(authProvider.getValue(), @@ -594,8 +594,8 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio // Delete authentication provider from account if (account != null) { - BoundStatement st3 = statementsPool.deleteCreationProviderFromAccount(account.getAccountId()); - batch.add(st3); + BoundStatement deleteCreationProviderStatement = statementsPool.deleteCreationProviderFromAccount(account.getAccountId()); + batch.add(deleteCreationProviderStatement); } rs = session.execute(batch); -- GitLab