Search in sources :

Example 1 with UserAccount_

use of com.hack23.cia.model.internal.application.user.impl.UserAccount_ in project cia by Hack23.

the class LogoutServiceITest method serviceLogoutRequestSuccessTest.

/**
 * Service logout request success test.
 *
 * @throws Exception
 *             the exception
 */
@Test
@PerfTest(threads = 4, duration = 5000, warmUp = 1500)
@Required(max = 2500, average = 1700, percentile95 = 2400, throughput = 2)
public void serviceLogoutRequestSuccessTest() throws Exception {
    final CreateApplicationSessionRequest createApplicationSesstion = createApplicationSesstionWithRoleAnonymous();
    final RegisterUserRequest serviceRequest = new RegisterUserRequest();
    serviceRequest.setCountry("Sweden");
    serviceRequest.setUsername(UUID.randomUUID().toString());
    serviceRequest.setEmail(serviceRequest.getUsername() + "@email.com");
    serviceRequest.setUserpassword("Userpassword1!");
    serviceRequest.setUserType(UserType.PRIVATE);
    serviceRequest.setSessionId(createApplicationSesstion.getSessionId());
    final RegisterUserResponse response = (RegisterUserResponse) applicationManager.service(serviceRequest);
    assertNotNull(EXPECT_A_RESULT, response);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, response.getResult());
    final DataContainer<UserAccount, Long> dataContainer = applicationManager.getDataContainer(UserAccount.class);
    final List<UserAccount> allBy = dataContainer.getAllBy(UserAccount_.username, serviceRequest.getUsername());
    assertEquals(1, allBy.size());
    final LoginRequest loginRequest = new LoginRequest();
    loginRequest.setEmail(serviceRequest.getEmail());
    loginRequest.setSessionId(serviceRequest.getSessionId());
    loginRequest.setUserpassword(serviceRequest.getUserpassword());
    final LoginResponse loginResponse = (LoginResponse) applicationManager.service(loginRequest);
    assertNotNull(EXPECT_A_RESULT, loginResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, loginResponse.getResult());
    final LogoutRequest logoutRequest = new LogoutRequest();
    logoutRequest.setSessionId(serviceRequest.getSessionId());
    final ServiceResponse logoutResponse = applicationManager.service(logoutRequest);
    assertNotNull(EXPECT_A_RESULT, logoutResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, logoutResponse.getResult());
}
Also used : ServiceResponse(com.hack23.cia.service.api.action.common.ServiceResponse) LoginResponse(com.hack23.cia.service.api.action.application.LoginResponse) CreateApplicationSessionRequest(com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest) RegisterUserRequest(com.hack23.cia.service.api.action.application.RegisterUserRequest) RegisterUserResponse(com.hack23.cia.service.api.action.application.RegisterUserResponse) LogoutRequest(com.hack23.cia.service.api.action.application.LogoutRequest) LoginRequest(com.hack23.cia.service.api.action.application.LoginRequest) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Required(org.databene.contiperf.Required) PerfTest(org.databene.contiperf.PerfTest) Test(org.junit.Test) AbstractServiceFunctionalIntegrationTest(com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest) PerfTest(org.databene.contiperf.PerfTest)

Example 2 with UserAccount_

use of com.hack23.cia.model.internal.application.user.impl.UserAccount_ in project cia by Hack23.

the class DisableGoogleAuthenticatorCredentialServiceITest method serviceDisableGoogleAuthenticatorCredentialRequestSuccessTest.

/**
 * Service disable google authenticator credential request success test.
 *
 * @throws Exception
 *             the exception
 */
@Test
@PerfTest(threads = 2, duration = 7500, warmUp = 1500)
@Required(max = 6000, average = 5000, percentile95 = 5400)
public void serviceDisableGoogleAuthenticatorCredentialRequestSuccessTest() throws Exception {
    final CreateApplicationSessionRequest createApplicationSesstion = createApplicationSesstionWithRoleAnonymous();
    final RegisterUserRequest serviceRequest = new RegisterUserRequest();
    serviceRequest.setCountry("Sweden");
    serviceRequest.setUsername(UUID.randomUUID().toString());
    serviceRequest.setEmail(serviceRequest.getUsername() + "@email.com");
    serviceRequest.setUserpassword("Userpassword1!");
    serviceRequest.setUserType(UserType.PRIVATE);
    serviceRequest.setSessionId(createApplicationSesstion.getSessionId());
    final RegisterUserResponse response = (RegisterUserResponse) applicationManager.service(serviceRequest);
    assertNotNull(EXPECT_A_RESULT, response);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, response.getResult());
    final DataContainer<UserAccount, Long> dataContainer = applicationManager.getDataContainer(UserAccount.class);
    final List<UserAccount> allBy = dataContainer.getAllBy(UserAccount_.username, serviceRequest.getUsername());
    assertEquals(1, allBy.size());
    final LoginRequest loginRequest = new LoginRequest();
    loginRequest.setEmail(serviceRequest.getEmail());
    loginRequest.setSessionId(serviceRequest.getSessionId());
    loginRequest.setUserpassword(serviceRequest.getUserpassword());
    final LoginResponse loginResponse = (LoginResponse) applicationManager.service(loginRequest);
    assertNotNull(EXPECT_A_RESULT, loginResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, loginResponse.getResult());
    final SetGoogleAuthenticatorCredentialRequest setGoogleAuthenticatorCredentialRequest = new SetGoogleAuthenticatorCredentialRequest();
    setGoogleAuthenticatorCredentialRequest.setSessionId(serviceRequest.getSessionId());
    final ServiceResponse setGoogleAuthenticatorCredentialResponse = applicationManager.service(setGoogleAuthenticatorCredentialRequest);
    assertNotNull(EXPECT_A_RESULT, setGoogleAuthenticatorCredentialResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, setGoogleAuthenticatorCredentialResponse.getResult());
    {
        final DisableGoogleAuthenticatorCredentialRequest disableGoogleAuthenticatorCredentialRequest = new DisableGoogleAuthenticatorCredentialRequest();
        disableGoogleAuthenticatorCredentialRequest.setSessionId(serviceRequest.getSessionId());
        final ServiceResponse disableGoogleAuthenticatorCredentialResponse = applicationManager.service(disableGoogleAuthenticatorCredentialRequest);
        assertNotNull(EXPECT_A_RESULT, disableGoogleAuthenticatorCredentialResponse);
        assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, disableGoogleAuthenticatorCredentialResponse.getResult());
    }
    final LogoutRequest logoutRequest = new LogoutRequest();
    logoutRequest.setSessionId(serviceRequest.getSessionId());
    final ServiceResponse logoutResponse = applicationManager.service(logoutRequest);
    assertNotNull(EXPECT_A_RESULT, logoutResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, logoutResponse.getResult());
}
Also used : LoginResponse(com.hack23.cia.service.api.action.application.LoginResponse) DisableGoogleAuthenticatorCredentialRequest(com.hack23.cia.service.api.action.user.DisableGoogleAuthenticatorCredentialRequest) RegisterUserRequest(com.hack23.cia.service.api.action.application.RegisterUserRequest) LoginRequest(com.hack23.cia.service.api.action.application.LoginRequest) ServiceResponse(com.hack23.cia.service.api.action.common.ServiceResponse) CreateApplicationSessionRequest(com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest) RegisterUserResponse(com.hack23.cia.service.api.action.application.RegisterUserResponse) SetGoogleAuthenticatorCredentialRequest(com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialRequest) LogoutRequest(com.hack23.cia.service.api.action.application.LogoutRequest) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Required(org.databene.contiperf.Required) PerfTest(org.databene.contiperf.PerfTest) Test(org.junit.Test) AbstractServiceFunctionalIntegrationTest(com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest) PerfTest(org.databene.contiperf.PerfTest)

Example 3 with UserAccount_

use of com.hack23.cia.model.internal.application.user.impl.UserAccount_ in project cia by Hack23.

the class LoginBlockedAccessImpl method blockByUserFailedLoginAttempts.

/**
 * Block by user failed login attempts.
 *
 * @param email
 *            the email
 * @param loginBlockResultImpl
 *            the login block result impl
 */
private void blockByUserFailedLoginAttempts(final String email, final LoginBlockResultImpl loginBlockResultImpl) {
    final UserAccount userExist = userDAO.findFirstByProperty(UserAccount_.email, email);
    if (userExist != null) {
        final ApplicationConfiguration maxLoginAttemptsByUser = applicationConfigurationService.checkValueOrLoadDefault(MAX_FAILED_LOGIN_ATTEMPTS_RECENT_HOUR_PER_USER, BLOCKS_ANY_LOGIN_ATTEMPTS_AFTER_THIS_NUMBER_IS_REACHED, ConfigurationGroup.AUTHENTICATION, LoginBlockedAccessImpl.class.getSimpleName(), LOGIN_BLOCKER, BLOCKS_LOGIN_ATTEMPTS, APPLICATION_AUTHENTICATION_ALLOW_MAX_RECENT_FAILED_LOGINS_BY_USER, DEFAULT_MAX_LOGIN_ATTEMPTS);
        final List<ApplicationActionEvent> failedLoginsByThisUser = applicationActionEventDAO.findListByProperty(new Object[] { email, ApplicationOperationType.AUTHENTICATION, ServiceResult.FAILURE.toString() }, ApplicationActionEvent_.elementId, ApplicationActionEvent_.applicationOperation, ApplicationActionEvent_.applicationMessage);
        final Date oneHourAgo = new Date(System.currentTimeMillis() - ONE_HOUR);
        final Map<Boolean, List<ApplicationActionEvent>> recentOldLoginAttemptsMap = failedLoginsByThisUser.stream().collect(Collectors.groupingBy((final ApplicationActionEvent x) -> x.getCreatedDate().after(oneHourAgo)));
        final List<ApplicationActionEvent> recentFailedLogins = recentOldLoginAttemptsMap.get(Boolean.TRUE);
        if (recentFailedLogins != null && recentFailedLogins.size() > NumberUtils.toInt(maxLoginAttemptsByUser.getPropertyValue(), DEFAULT_MAX_LOGINS)) {
            loginBlockResultImpl.setBlocked(true);
            loginBlockResultImpl.addMessages(BLOCKED_BY_MORE_THAN_5_RECENT_LOGIN_ATTEMPTS_BY_THIS_USER);
        }
    }
}
Also used : ApplicationActionEvent(com.hack23.cia.model.internal.application.system.impl.ApplicationActionEvent) ArrayList(java.util.ArrayList) List(java.util.List) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) ApplicationConfiguration(com.hack23.cia.model.internal.application.system.impl.ApplicationConfiguration) Date(java.util.Date)

Example 4 with UserAccount_

use of com.hack23.cia.model.internal.application.user.impl.UserAccount_ in project cia by Hack23.

the class ManageUserAccountServiceITest method manageUserAccountSuccessUnLockTest.

@Test
public void manageUserAccountSuccessUnLockTest() throws Exception {
    setAuthenticatedAnonymousUser();
    final CreateApplicationSessionRequest createSessionRequest = createTestApplicationSession();
    final RegisterUserRequest createAccountRequest = new RegisterUserRequest();
    createAccountRequest.setCountry("Sweden");
    createAccountRequest.setUsername(UUID.randomUUID().toString());
    createAccountRequest.setEmail(createAccountRequest.getUsername() + "@email.com");
    createAccountRequest.setUserpassword("Userpassword1!");
    createAccountRequest.setUserType(UserType.PRIVATE);
    createAccountRequest.setSessionId(createSessionRequest.getSessionId());
    final RegisterUserResponse response = (RegisterUserResponse) applicationManager.service(createAccountRequest);
    assertNotNull("Expect a result", response);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, response.getResult());
    setAuthenticatedAdminuser();
    final DataContainer<UserAccount, Long> userContainer = applicationManager.getDataContainer(UserAccount.class);
    final List<UserAccount> firstCreatedUsed = userContainer.getAllBy(UserAccount_.username, createAccountRequest.getUsername());
    assertEquals(1, firstCreatedUsed.size());
    final ManageUserAccountRequest deleteAccountRequest = new ManageUserAccountRequest();
    deleteAccountRequest.setSessionId(createSessionRequest.getSessionId());
    deleteAccountRequest.setAccountOperation(AccountOperation.UNLOCK);
    deleteAccountRequest.setUserAcountId(firstCreatedUsed.get(0).getUserId());
    final ManageUserAccountResponse deleteAccountResponse = (ManageUserAccountResponse) applicationManager.service(deleteAccountRequest);
    assertNotNull(EXPECT_A_RESULT, deleteAccountResponse);
    assertEquals(EXPECT_SUCCESS, ServiceResult.SUCCESS, deleteAccountResponse.getResult());
    final List<UserAccount> allByAfterDelete = userContainer.getAllBy(UserAccount_.username, createAccountRequest.getUsername());
    assertEquals(1, allByAfterDelete.size());
    assertEquals(allByAfterDelete.get(0).getUserLockStatus(), UserLockStatus.UNLOCKED);
}
Also used : CreateApplicationSessionRequest(com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest) RegisterUserRequest(com.hack23.cia.service.api.action.application.RegisterUserRequest) ManageUserAccountRequest(com.hack23.cia.service.api.action.admin.ManageUserAccountRequest) RegisterUserResponse(com.hack23.cia.service.api.action.application.RegisterUserResponse) ManageUserAccountResponse(com.hack23.cia.service.api.action.admin.ManageUserAccountResponse) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Test(org.junit.Test) AbstractServiceFunctionalIntegrationTest(com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)

Example 5 with UserAccount_

use of com.hack23.cia.model.internal.application.user.impl.UserAccount_ in project cia by Hack23.

the class AdminUserAccountPageModContentFactoryImpl method createContent.

@Secured({ "ROLE_ADMIN" })
@Override
public Layout createContent(final String parameters, final MenuBar menuBar, final Panel panel) {
    final VerticalLayout content = createPanelContent();
    final String pageId = getPageId(parameters);
    final int pageNr = getPageNr(parameters);
    getMenuItemFactory().createMainPageMenuBar(menuBar);
    LabelFactory.createHeader2Label(content, ADMIN_USERACCOUNT);
    final DataContainer<UserAccount, Long> dataContainer = getApplicationManager().getDataContainer(UserAccount.class);
    final List<UserAccount> pageOrderBy = dataContainer.getPageOrderBy(pageNr, DEFAULT_RESULTS_PER_PAGE, UserAccount_.createdDate);
    createPagingControls(content, NAME, pageId, dataContainer.getSize(), pageNr, DEFAULT_RESULTS_PER_PAGE);
    getGridFactory().createBasicBeanItemGrid(content, UserAccount.class, pageOrderBy, USER_ACCOUNT, COLUMN_ORDER, HIDE_COLUMNS, LISTENER, null, null);
    if (pageId != null && !pageId.isEmpty()) {
        final UserAccount userAccount = dataContainer.load(Long.valueOf(pageId));
        if (userAccount != null) {
            getFormFactory().addFormPanelTextFields(content, userAccount, UserAccount.class, AS_LIST);
            final VerticalLayout overviewLayout = new VerticalLayout();
            overviewLayout.setSizeFull();
            content.addComponent(overviewLayout);
            content.setExpandRatio(overviewLayout, ContentRatio.LARGE);
            final ResponsiveRow grid = createGridLayout(overviewLayout);
            for (final AccountOperation accountOperation : ManageUserAccountRequest.AccountOperation.values()) {
                final ManageUserAccountRequest request = new ManageUserAccountRequest();
                request.setSessionId(RequestContextHolder.currentRequestAttributes().getSessionId());
                request.setAccountOperation(accountOperation);
                request.setUserAcountId(userAccount.getUserId());
                final Button accountOperationButton = new Button(MessageFormat.format(BUTTON_PATTERN, accountOperation), VaadinIcons.BULLSEYE);
                accountOperationButton.addClickListener(new ManageUserAccountClickListener(request));
                accountOperationButton.setId(MessageFormat.format(BUTTON_ID_PATTERN, ViewAction.START_AGENT_BUTTON, accountOperation));
                createRowItem(grid, accountOperationButton, "Will perform useraccount action");
            }
        }
    }
    getPageActionEventHelper().createPageEvent(ViewAction.VISIT_ADMIN_USERACCOUNT_VIEW, ApplicationEventGroup.ADMIN, NAME, null, pageId);
    return content;
}
Also used : Button(com.vaadin.ui.Button) ResponsiveRow(com.jarektoro.responsivelayout.ResponsiveRow) ManageUserAccountClickListener(com.hack23.cia.web.impl.ui.application.views.pageclicklistener.ManageUserAccountClickListener) ManageUserAccountRequest(com.hack23.cia.service.api.action.admin.ManageUserAccountRequest) VerticalLayout(com.vaadin.ui.VerticalLayout) AccountOperation(com.hack23.cia.service.api.action.admin.ManageUserAccountRequest.AccountOperation) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Secured(org.springframework.security.access.annotation.Secured)

Aggregations

UserAccount (com.hack23.cia.model.internal.application.user.impl.UserAccount)18 RegisterUserResponse (com.hack23.cia.service.api.action.application.RegisterUserResponse)14 CreateApplicationSessionRequest (com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest)13 RegisterUserRequest (com.hack23.cia.service.api.action.application.RegisterUserRequest)13 AbstractServiceFunctionalIntegrationTest (com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)13 Test (org.junit.Test)13 PerfTest (org.databene.contiperf.PerfTest)10 LoginResponse (com.hack23.cia.service.api.action.application.LoginResponse)8 LoginRequest (com.hack23.cia.service.api.action.application.LoginRequest)7 Required (org.databene.contiperf.Required)5 ManageUserAccountRequest (com.hack23.cia.service.api.action.admin.ManageUserAccountRequest)4 ManageUserAccountResponse (com.hack23.cia.service.api.action.admin.ManageUserAccountResponse)4 LogoutRequest (com.hack23.cia.service.api.action.application.LogoutRequest)3 ServiceResponse (com.hack23.cia.service.api.action.common.ServiceResponse)3 ArrayList (java.util.ArrayList)3 Secured (org.springframework.security.access.annotation.Secured)3 ApplicationActionEvent (com.hack23.cia.model.internal.application.system.impl.ApplicationActionEvent)2 ApplicationConfiguration (com.hack23.cia.model.internal.application.system.impl.ApplicationConfiguration)2 CreateApplicationEventRequest (com.hack23.cia.service.api.action.application.CreateApplicationEventRequest)2 SetGoogleAuthenticatorCredentialRequest (com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialRequest)2