diff options
6 files changed, 22 insertions, 25 deletions
diff --git a/plugins/org.eclipse.osee.account.admin.test/src/org/eclipse/osee/account/admin/internal/AccountAdminImplTest.java b/plugins/org.eclipse.osee.account.admin.test/src/org/eclipse/osee/account/admin/internal/AccountAdminImplTest.java index 430212d6775..ff5f4bda8b0 100644 --- a/plugins/org.eclipse.osee.account.admin.test/src/org/eclipse/osee/account/admin/internal/AccountAdminImplTest.java +++ b/plugins/org.eclipse.osee.account.admin.test/src/org/eclipse/osee/account/admin/internal/AccountAdminImplTest.java @@ -28,7 +28,6 @@ import static org.mockito.MockitoAnnotations.initMocks; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.eclipse.osee.account.admin.AccessDetails; import org.eclipse.osee.account.admin.Account; import org.eclipse.osee.account.admin.AccountAccess; import org.eclipse.osee.account.admin.AccountField; @@ -85,7 +84,6 @@ public class AccountAdminImplTest { @Mock private AuthenticatedUser authenticatedUser; @Captor private ArgumentCaptor<Map<String, String>> newPrefsCaptor; @Captor private ArgumentCaptor<String> tokenCaptor; - @Captor private ArgumentCaptor<AccessDetails> accessDetailsCaptor; @Captor private ArgumentCaptor<AuthenticationRequest> authenticationRequestCaptor; // @formatter:on @@ -635,7 +633,7 @@ public class AccountAdminImplTest { thrown.expectMessage("Login Error - Unable to find account for username[" + userName + "] using authentication scheme[" + scheme + "] and userId[" + userName + "]"); accountAdmin.login(request); - verify(storage, times(0)).createAccountAccess(anyString(), any(Account.class), any(AccessDetails.class)); + verify(storage, times(0)).createAccountAccess(anyString(), any(Account.class), anyString(), anyString()); verify(authenticationAdmin).authenticate(authenticationRequestCaptor.capture()); @@ -657,7 +655,7 @@ public class AccountAdminImplTest { AccountAccess access = Mockito.mock(AccountAccess.class); when(storage.getAccountByEmail(EMAIL)).thenReturn(resultSet); - when(storage.createAccountAccess(anyString(), eq(account), any(AccessDetails.class))).thenReturn(access); + when(storage.createAccountAccess(anyString(), eq(account), anyString(), anyString())).thenReturn(access); when(authenticationAdmin.authenticate(any(AuthenticationRequest.class))).thenReturn(authenticatedUser); when(authenticatedUser.getName()).thenReturn(EMAIL); @@ -672,13 +670,9 @@ public class AccountAdminImplTest { AccountAccess actual = accountAdmin.login(request); assertEquals(access, actual); - verify(storage).createAccountAccess(tokenCaptor.capture(), eq(account), accessDetailsCaptor.capture()); + verify(storage).createAccountAccess(tokenCaptor.capture(), eq(account), eq(remoteAddress), eq(accessDetails)); assertNotNull(tokenCaptor.getValue()); - AccessDetails actualDetails = accessDetailsCaptor.getValue(); - assertEquals(remoteAddress, actualDetails.getRemoteAddress()); - assertEquals(accessDetails, actualDetails.getAccessDetails()); - verify(authenticationAdmin).authenticate(authenticationRequestCaptor.capture()); AuthenticationRequest authRequest = authenticationRequestCaptor.getValue(); diff --git a/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/AccountConstants.java b/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/AccountConstants.java index df0a3ef0dcf..ee068b3d14e 100644 --- a/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/AccountConstants.java +++ b/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/AccountConstants.java @@ -25,6 +25,8 @@ public final class AccountConstants { return String.format("%s.%s", NAMESPACE, value); } + public static final String NOT_AVAILABLE = "N/A"; + public static final String DEFAULT_USERNAME_VALIDATION_PATTERN = null; public static final String DEFAULT_EMAIL_VALIDATION_PATTERN = null; public static final String DEFAULT_DISPLAY_NAME_VALIDATION_PATTERN = null; diff --git a/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/ds/AccountStorage.java b/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/ds/AccountStorage.java index 5dcb419cb86..2a01fe799b8 100644 --- a/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/ds/AccountStorage.java +++ b/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/ds/AccountStorage.java @@ -11,7 +11,6 @@ package org.eclipse.osee.account.admin.ds; import java.util.Map; -import org.eclipse.osee.account.admin.AccessDetails; import org.eclipse.osee.account.admin.Account; import org.eclipse.osee.account.admin.AccountAccess; import org.eclipse.osee.account.admin.AccountPreferences; @@ -59,7 +58,7 @@ public interface AccountStorage { ResultSet<AccountAccess> getAccountAccessByAccessToken(String accessToken); - AccountAccess createAccountAccess(String accessToken, Account account, AccessDetails details); + AccountAccess createAccountAccess(String accessToken, Account account, String accessDetails, String remoteAddress); void deleteAccountAccessByAccessToken(String accessToken); diff --git a/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/internal/AccountAdminImpl.java b/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/internal/AccountAdminImpl.java index 71d138d6096..63aa9f088f7 100644 --- a/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/internal/AccountAdminImpl.java +++ b/plugins/org.eclipse.osee.account.admin/src/org/eclipse/osee/account/admin/internal/AccountAdminImpl.java @@ -13,11 +13,13 @@ package org.eclipse.osee.account.admin.internal; import java.util.HashMap; import java.util.Map; import java.util.UUID; +import org.eclipse.osee.account.admin.AccessDetails; import org.eclipse.osee.account.admin.Account; import org.eclipse.osee.account.admin.AccountAccess; import org.eclipse.osee.account.admin.AccountAdmin; import org.eclipse.osee.account.admin.AccountAdminConfiguration; import org.eclipse.osee.account.admin.AccountAdminConfigurationBuilder; +import org.eclipse.osee.account.admin.AccountConstants; import org.eclipse.osee.account.admin.AccountField; import org.eclipse.osee.account.admin.AccountLoginException; import org.eclipse.osee.account.admin.AccountLoginRequest; @@ -33,6 +35,7 @@ import org.eclipse.osee.framework.jdk.core.type.Identifiable; import org.eclipse.osee.framework.jdk.core.type.ResultSet; import org.eclipse.osee.framework.jdk.core.util.Compare; import org.eclipse.osee.framework.jdk.core.util.Conditions; +import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.logger.Log; /** @@ -300,19 +303,26 @@ public class AccountAdminImpl implements AccountAdmin { return modified; } + private String notAvailableWhenNullorEmpty(String value) { + return Strings.isValid(value) ? value : AccountConstants.NOT_AVAILABLE; + } + @Override public AccountAccess login(AccountLoginRequest request) { - String username = request.getUserName(); String id = authenticate(request); ResultSet<Account> result = getAccountByUniqueField(id); Account account = result.getAtMostOneOrNull(); if (account == null) { throw new AccountLoginException( "Login Error - Unable to find account for username[%s] using authentication scheme[%s] and userId[%s]", - username, request.getScheme(), id); + request.getUserName(), request.getScheme(), id); } String accessToken = UUID.randomUUID().toString(); - return storage.createAccountAccess(accessToken, account, request.getDetails()); + + AccessDetails details = request.getDetails(); + String remoteAddress = notAvailableWhenNullorEmpty(details.getRemoteAddress()); + String accessDetails = notAvailableWhenNullorEmpty(details.getAccessDetails()); + return storage.createAccountAccess(accessToken, account, remoteAddress, accessDetails); } @Override diff --git a/plugins/org.eclipse.osee.orcs.account.admin.test/src/org/eclipse/osee/orcs/account/admin/integration/OrcsAccountStorageImplTest.java b/plugins/org.eclipse.osee.orcs.account.admin.test/src/org/eclipse/osee/orcs/account/admin/integration/OrcsAccountStorageImplTest.java index d9916db2c8d..d1761caebcb 100644 --- a/plugins/org.eclipse.osee.orcs.account.admin.test/src/org/eclipse/osee/orcs/account/admin/integration/OrcsAccountStorageImplTest.java +++ b/plugins/org.eclipse.osee.orcs.account.admin.test/src/org/eclipse/osee/orcs/account/admin/integration/OrcsAccountStorageImplTest.java @@ -18,7 +18,6 @@ import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; import java.util.HashMap; import java.util.Map; -import org.eclipse.osee.account.admin.AccessDetails; import org.eclipse.osee.account.admin.Account; import org.eclipse.osee.account.admin.AccountAccess; import org.eclipse.osee.account.admin.AccountAdmin; @@ -38,7 +37,6 @@ import org.junit.rules.ExpectedException; import org.junit.rules.TestName; import org.junit.rules.TestRule; import org.mockito.Mock; -import org.mockito.Mockito; /** * Test Case for {@link AccountAdmin} using {@link OrcsAccountStorageImpl} @@ -208,13 +206,9 @@ public class OrcsAccountStorageImplTest { String address = "myAddress"; String details = "myDetails"; - AccessDetails accessDetails = Mockito.mock(AccessDetails.class); - when(accessDetails.getAccessDetails()).thenReturn(details); - when(accessDetails.getRemoteAddress()).thenReturn(address); - Account account = storage.getAccountByUuid(newAccount.getGuid()).getExactlyOne(); - AccountAccess actual = storage.createAccountAccess(token, account, accessDetails); + AccountAccess actual = storage.createAccountAccess(token, account, address, details); assertEquals(details, actual.getAccessDetails()); assertEquals(address, actual.getAccessedFrom()); assertEquals(token, actual.getAccessToken()); diff --git a/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/OrcsAccountStorageImpl.java b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/OrcsAccountStorageImpl.java index bf19970a857..85932ef5855 100644 --- a/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/OrcsAccountStorageImpl.java +++ b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/OrcsAccountStorageImpl.java @@ -14,7 +14,6 @@ import java.io.StringWriter; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; -import org.eclipse.osee.account.admin.AccessDetails; import org.eclipse.osee.account.admin.Account; import org.eclipse.osee.account.admin.AccountAccess; import org.eclipse.osee.account.admin.AccountPreferences; @@ -266,9 +265,8 @@ public class OrcsAccountStorageImpl implements AccountStorage { } @Override - public AccountAccess createAccountAccess(String accessToken, Account account, AccessDetails details) { - AccountAccess access = - factory.newAccountAccess(account.getId(), accessToken, details.getRemoteAddress(), details.getAccessDetails()); + public AccountAccess createAccountAccess(String accessToken, Account account, String remoteAddress, String accessDetails) { + AccountAccess access = factory.newAccountAccess(account.getId(), accessToken, remoteAddress, accessDetails); try { accessStore.createAccountAccess(Collections.singleton(access)).call(); return access; |