Search in sources :

Example 1 with SetGoogleAuthenticatorCredentialResponse

use of com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialResponse 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 2 with SetGoogleAuthenticatorCredentialResponse

use of com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialResponse in project cia by Hack23.

the class SetGoogleAuthenticatorCredentialServiceITest method servicesetGoogleAuthenticatorCredentialRequestSuccessTest.

/**
 * Serviceset google authenticator credential request success test.
 *
 * @throws Exception
 *             the exception
 */
@Test
@PerfTest(threads = 2, duration = 4000, warmUp = 1500)
@Required(max = 3000, average = 2500, percentile95 = 2700, throughput = 1)
public void servicesetGoogleAuthenticatorCredentialRequestSuccessTest() 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 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) SetGoogleAuthenticatorCredentialRequest(com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialRequest) 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 3 with SetGoogleAuthenticatorCredentialResponse

use of com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialResponse in project cia by Hack23.

the class SetGoogleAuthenticatorCredentialService method processService.

@Override
@Secured({ "ROLE_USER", "ROLE_ADMIN" })
public SetGoogleAuthenticatorCredentialResponse processService(final SetGoogleAuthenticatorCredentialRequest serviceRequest) {
    final SetGoogleAuthenticatorCredentialResponse inputValidation = inputValidation(serviceRequest);
    if (inputValidation != null) {
        return inputValidation;
    }
    LOGGER.info("{}:{}", serviceRequest.getClass().getSimpleName(), serviceRequest.getSessionId());
    final CreateApplicationEventRequest eventRequest = createApplicationEventForService(serviceRequest);
    final UserAccount userAccount = getUserAccountFromSecurityContext();
    final SetGoogleAuthenticatorCredentialResponse response = new SetGoogleAuthenticatorCredentialResponse(ServiceResult.SUCCESS);
    if (userAccount != null) {
        eventRequest.setUserId(userAccount.getUserId());
        final GoogleAuthenticator gAuth = new GoogleAuthenticator();
        final GoogleAuthenticatorKey gKey = gAuth.createCredentials();
        final UserAccount updateUserAccount = userDAO.load(userAccount.getHjid());
        updateUserAccount.setGoogleAuthKey(gKey.getKey());
        updateUserAccount.setGoogleAuthVerificationCode(gKey.getVerificationCode());
        updateUserAccount.setGoogleAuthScratchCodes(gKey.getScratchCodes());
        userDAO.merge(updateUserAccount);
        final String otpAuthTotpURL = GoogleAuthenticatorQRGenerator.getOtpAuthTotpURL(agencyDAO.getAll().get(0).getAgencyName(), updateUserAccount.getEmail(), gKey);
        response.setOtpAuthTotpURL(otpAuthTotpURL);
        response.setGoogleAuthKey(gKey.getKey());
        response.setGoogleAuthVerificationCode(gKey.getVerificationCode());
        response.setGoogleAuthScratchCodes(gKey.getScratchCodes());
    }
    eventRequest.setApplicationMessage(response.getResult().toString());
    createApplicationEventService.processService(eventRequest);
    return response;
}
Also used : GoogleAuthenticatorKey(com.warrenstrange.googleauth.GoogleAuthenticatorKey) GoogleAuthenticator(com.warrenstrange.googleauth.GoogleAuthenticator) SetGoogleAuthenticatorCredentialResponse(com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialResponse) CreateApplicationEventRequest(com.hack23.cia.service.api.action.application.CreateApplicationEventRequest) UserAccount(com.hack23.cia.model.internal.application.user.impl.UserAccount) Secured(org.springframework.security.access.annotation.Secured)

Example 4 with SetGoogleAuthenticatorCredentialResponse

use of com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialResponse in project cia by Hack23.

the class SetGoogleAuthenticatorCredentialClickListener method buttonClick.

@Override
public void buttonClick(final ClickEvent event) {
    final SetGoogleAuthenticatorCredentialResponse response = (SetGoogleAuthenticatorCredentialResponse) ApplicationMangerAccess.getApplicationManager().service(googleAuthRequest);
    if (ServiceResult.SUCCESS == response.getResult()) {
        try {
            final URI keyUri = new URI(response.getOtpAuthTotpURL());
            final QRCode qrCode = new QRCode(QR_CODE, keyUri.toASCIIString());
            qrCode.setHeight(QR_CODE_IMAGE_SIZE);
            qrCode.setWidth(QR_CODE_IMAGE_SIZE);
            final Window mywindow = new Window(GOOGLE_AUTHENTICATOR_QR_CODE);
            mywindow.setHeight(MODAL_WINDOW_SIZE);
            mywindow.setWidth(MODAL_WINDOW_SIZE);
            mywindow.setPositionX(WINDOW_POSITION);
            mywindow.setPositionY(WINDOW_POSITION);
            final VerticalLayout panelContent = new VerticalLayout();
            mywindow.setContent(panelContent);
            panelContent.addComponent(qrCode);
            mywindow.setModal(true);
            UI.getCurrent().addWindow(mywindow);
        } catch (final URISyntaxException e) {
            LOGGER.warn(PROBLEM_DISPLAYING_QR_CODE, e);
            Notification.show(PROBLEM_DISPLAYING_QR_CODE, ERROR_MESSAGE, Notification.Type.WARNING_MESSAGE);
        }
    } else {
        Notification.show(PROBLEM_ENABLE_GOOGLE_AUTHENTICATOR, ERROR_MESSAGE, Notification.Type.WARNING_MESSAGE);
        LOGGER.info(PROBLEM_ENABLE_GOOGLE_AUTHENTICATOR_SESSIONID, googleAuthRequest.getSessionId());
    }
}
Also used : Window(com.vaadin.ui.Window) QRCode(fi.jasoft.qrcode.QRCode) SetGoogleAuthenticatorCredentialResponse(com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialResponse) VerticalLayout(com.vaadin.ui.VerticalLayout) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI)

Aggregations

UserAccount (com.hack23.cia.model.internal.application.user.impl.UserAccount)3 CreateApplicationSessionRequest (com.hack23.cia.service.api.action.application.CreateApplicationSessionRequest)2 LoginRequest (com.hack23.cia.service.api.action.application.LoginRequest)2 LoginResponse (com.hack23.cia.service.api.action.application.LoginResponse)2 LogoutRequest (com.hack23.cia.service.api.action.application.LogoutRequest)2 RegisterUserRequest (com.hack23.cia.service.api.action.application.RegisterUserRequest)2 RegisterUserResponse (com.hack23.cia.service.api.action.application.RegisterUserResponse)2 ServiceResponse (com.hack23.cia.service.api.action.common.ServiceResponse)2 SetGoogleAuthenticatorCredentialRequest (com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialRequest)2 SetGoogleAuthenticatorCredentialResponse (com.hack23.cia.service.api.action.user.SetGoogleAuthenticatorCredentialResponse)2 AbstractServiceFunctionalIntegrationTest (com.hack23.cia.service.impl.AbstractServiceFunctionalIntegrationTest)2 PerfTest (org.databene.contiperf.PerfTest)2 Required (org.databene.contiperf.Required)2 Test (org.junit.Test)2 CreateApplicationEventRequest (com.hack23.cia.service.api.action.application.CreateApplicationEventRequest)1 DisableGoogleAuthenticatorCredentialRequest (com.hack23.cia.service.api.action.user.DisableGoogleAuthenticatorCredentialRequest)1 VerticalLayout (com.vaadin.ui.VerticalLayout)1 Window (com.vaadin.ui.Window)1 GoogleAuthenticator (com.warrenstrange.googleauth.GoogleAuthenticator)1 GoogleAuthenticatorKey (com.warrenstrange.googleauth.GoogleAuthenticatorKey)1