Search in sources :

Example 1 with LoginResponse

use of com.hack23.cia.service.api.action.application.LoginResponse 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 LoginResponse

use of com.hack23.cia.service.api.action.application.LoginResponse 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 LoginResponse

use of com.hack23.cia.service.api.action.application.LoginResponse in project cia by Hack23.

the class ApplicationLoginListener method buttonClick.

@Override
public void buttonClick(final ClickEvent event) {
    final LoginResponse response = (LoginResponse) ApplicationMangerAccess.getApplicationManager().service(loginRequest);
    if (ServiceResult.SUCCESS == response.getResult()) {
        LOGGER.info(LOG_MSG_LOGIN_REQUEST, loginRequest.getEmail());
        UI.getCurrent().getNavigator().navigateTo(UserViews.USERHOME_VIEW_NAME);
    } else {
        Notification.show(LOGIN_FAILED, response.getErrorMessage(), Notification.Type.WARNING_MESSAGE);
        LOGGER.info(LOG_MSG_LOGIN_REQUEST_FAILURE, loginRequest.getEmail());
    }
}
Also used : LoginResponse(com.hack23.cia.service.api.action.application.LoginResponse)

Example 4 with LoginResponse

use of com.hack23.cia.service.api.action.application.LoginResponse in project cia by Hack23.

the class LoginService method processService.

@Override
@Secured({ "ROLE_ANONYMOUS", "ROLE_USER", "ROLE_ADMIN" })
public LoginResponse processService(final LoginRequest serviceRequest) {
    final LoginResponse inputValidation = inputValidation(serviceRequest);
    if (inputValidation != null) {
        return inputValidation;
    }
    final CreateApplicationEventRequest eventRequest = createApplicationEventForService(serviceRequest);
    final UserAccount userExist = userDAO.findFirstByProperty(UserAccount_.email, serviceRequest.getEmail());
    final LoginBlockResult loginBlockResult = loginBlockedAccess.isBlocked(serviceRequest.getSessionId(), serviceRequest.getEmail());
    LoginResponse response;
    if (!loginBlockResult.isBlocked() && userExist != null && userExist.getUserLockStatus() == UserLockStatus.UNLOCKED && verifyOtp(serviceRequest, userExist) && passwordEncoder.matches(userExist.getUserId() + ".uuid" + serviceRequest.getUserpassword(), userExist.getUserpassword())) {
        final Collection<SimpleGrantedAuthority> authorities = new ArrayList<>();
        if (UserRole.ADMIN == userExist.getUserRole()) {
            authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
        } else if (UserRole.USER == userExist.getUserRole()) {
            authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
        }
        eventRequest.setUserId(userExist.getUserId());
        SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(userExist, userExist.getUserpassword(), authorities));
        userExist.setNumberOfVisits(userExist.getNumberOfVisits() + 1);
        userDAO.persist(userExist);
        response = new LoginResponse(ServiceResult.SUCCESS);
    } else {
        response = new LoginResponse(ServiceResult.FAILURE);
        response.setErrorMessage(LoginResponse.ErrorMessage.USERNAME_OR_PASSWORD_DO_NOT_MATCH.toString());
        if (loginBlockResult.isBlocked()) {
            eventRequest.setErrorMessage(loginBlockResult.getMessages().toString());
        } else {
            eventRequest.setErrorMessage(LoginResponse.ErrorMessage.USERNAME_OR_PASSWORD_DO_NOT_MATCH.toString());
        }
    }
    eventRequest.setApplicationMessage(response.getResult().toString());
    createApplicationEventService.processService(eventRequest);
    LOGGER.info("Event: {}", eventRequest);
    return response;
}
Also used : SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) LoginResponse(com.hack23.cia.service.api.action.application.LoginResponse) ArrayList(java.util.ArrayList) CreateApplicationEventRequest(com.hack23.cia.service.api.action.application.CreateApplicationEventRequest) UsernamePasswordAuthenticationToken(org.springframework.security.authentication.UsernamePasswordAuthenticationToken) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) LoginBlockResult(com.hack23.cia.service.impl.action.application.access.LoginBlockedAccess.LoginBlockResult) Secured(org.springframework.security.access.annotation.Secured)

Example 5 with LoginResponse

use of com.hack23.cia.service.api.action.application.LoginResponse in project cia by Hack23.

the class LoginServiceITest method serviceLoginRequestSuccessTest.

/**
 * Service login request success test.
 *
 * @throws Exception
 *             the exception
 */
@Test
@PerfTest(threads = 2, duration = 4000, warmUp = 1500)
@Required(max = 2500, average = 2000, percentile95 = 2200, throughput = 1)
public void serviceLoginRequestSuccessTest() 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());
}
Also used : 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) 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)

Aggregations

LoginResponse (com.hack23.cia.service.api.action.application.LoginResponse)9 UserAccount (com.hack23.cia.model.internal.application.user.impl.UserAccount)8 CreateApplicationSessionRequest (com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest)7 LoginRequest (com.hack23.cia.service.api.action.application.LoginRequest)7 RegisterUserRequest (com.hack23.cia.service.api.action.application.RegisterUserRequest)7 RegisterUserResponse (com.hack23.cia.service.api.action.application.RegisterUserResponse)7 AbstractServiceFunctionalIntegrationTest (com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)7 PerfTest (org.databene.contiperf.PerfTest)7 Test (org.junit.Test)7 Required (org.databene.contiperf.Required)4 LogoutRequest (com.hack23.cia.service.api.action.application.LogoutRequest)3 ServiceResponse (com.hack23.cia.service.api.action.common.ServiceResponse)3 SetGoogleAuthenticatorCredentialRequest (com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialRequest)2 CreateApplicationEventRequest (com.hack23.cia.service.api.action.application.CreateApplicationEventRequest)1 DisableGoogleAuthenticatorCredentialRequest (com.hack23.cia.service.api.action.user.DisableGoogleAuthenticatorCredentialRequest)1 LoginBlockResult (com.hack23.cia.service.impl.action.application.access.LoginBlockedAccess.LoginBlockResult)1 ArrayList (java.util.ArrayList)1 Secured (org.springframework.security.access.annotation.Secured)1 UsernamePasswordAuthenticationToken (org.springframework.security.authentication.UsernamePasswordAuthenticationToken)1 SimpleGrantedAuthority (org.springframework.security.core.authority.SimpleGrantedAuthority)1