@Test(expected = AuthenticationException.class) public void userNotFound() { LoginRequest request = new LoginRequest(); request.setPassword("password"); request.setUsername(createRandomEmailAddress()); userService.login(request); }
@Test(expected = ValidationException.class) public void invalidLoginRequestEmailMalformed() { LoginRequest request = new LoginRequest(); request.setPassword("password"); request.setUsername("NOTaValidEmailAddress"); userService.login(request); }
@Test public void invalidEmailAddress() { LoginRequest request = new LoginRequest(); request.setPassword(RandomStringUtils.randomAlphanumeric(8)); Set<ConstraintViolation<LoginRequest>> constraints = validator.validate(request); assertThat(constraints.size(), is(1)); }
@Test(expected = ValidationException.class) public void invalidLoginRequestEmailHasSpace() { LoginRequest request = new LoginRequest(); request.setPassword("password"); request.setUsername("my username"); userService.login(request); }
@Test public void invalidPassword() { LoginRequest request = new LoginRequest(); request.setUsername(RandomStringUtils.randomAlphabetic(8) + "@example.com"); request.setPassword(RandomStringUtils.randomAlphanumeric(7)); Set<ConstraintViolation<LoginRequest>> constraints = validator.validate(request); assertThat(constraints.size(), is(1)); }
@Test(expected = AuthenticationException.class) public void invalidPassword() { CreateUserRequest request = getDefaultCreateUserRequest(); ExternalUser user = userService.createUser(request, Role.authenticated); LoginRequest loginRequest = new LoginRequest(); loginRequest.setUsername(request.getUser().getEmailAddress()); loginRequest.setPassword("qwerty123"); userService.login(loginRequest); }
@Test public void multipleLoginsGetDifferentSessionToken() { CreateUserRequest request = getDefaultCreateUserRequest(); ExternalUser createdUser = userService.createUser(request, Role.authenticated); String sessionToken = createdUser.getSessions().get(0).getSessionToken(); LoginRequest loginRequest = new LoginRequest(); loginRequest.setUsername(request.getUser().getEmailAddress()); loginRequest.setPassword(request.getPassword().getPassword()); String session1 = userService.login(loginRequest).getSessions().get(0).getSessionToken(); String session2 = userService.login(loginRequest).getSessions().get(0).getSessionToken(); assertThat(session1, is(not(session2))); }
@Test public void cleanUpExpiredSessions() { CreateUserRequest request = getDefaultCreateUserRequest(); ExternalUser createdUser = userService.createUser(request, Role.authenticated); LoginRequest loginRequest = new LoginRequest(); loginRequest.setUsername(request.getUser().getEmailAddress()); loginRequest.setPassword(request.getPassword().getPassword()); userService.login(loginRequest).getSessions().get(0).getSessionToken(); userService.login(loginRequest).getSessions().get(0).getSessionToken(); userService.deleteExpiredSessions(-1); ExternalUser externalUser = userService.getUser(createdUser, createdUser.getId()); assertThat(externalUser.getSessions().size(), is(0)); }
@Test public void validLoginWithEmailAddress() throws Exception { CreateUserRequest request = getDefaultCreateUserRequest(); ExternalUser createdUser = userService.createUser(request, Role.authenticated); String sessionToken = createdUser.getSessions().get(0).getSessionToken(); LoginRequest loginRequest = new LoginRequest(); loginRequest.setUsername(request.getUser().getEmailAddress()); loginRequest.setPassword(request.getPassword().getPassword()); ExternalUser loggedInUser = userService.login(loginRequest); assertThat(loggedInUser.getId().toString(), is(createdUser.getId().toString())); assertThat(loggedInUser.getSessions().get(0), is(notNullValue())); // check that a new token was issued assertThat(loggedInUser.getSessions().get(0).getSessionToken(), is(not(sessionToken))); assertThat(loggedInUser.isVerified(), is(false)); }
@Test public void saveActiveSession() { CreateUserRequest request = getDefaultCreateUserRequest(); ExternalUser createdUser = userService.createUser(request, Role.authenticated); UserSession sessionToken1 = createdUser.getSessions().get(0); LoginRequest loginRequest = new LoginRequest(); loginRequest.setUsername(request.getUser().getEmailAddress()); loginRequest.setPassword(request.getPassword().getPassword()); UserSession sessionToken2 = userService.login(loginRequest).getSessions().get(0); createdUser.setActiveSession(sessionToken1); userService.saveUserSession(createdUser); ExternalUser updatedUser = userService.getUser(createdUser, createdUser.getId()); // most recently used token assertThat( updatedUser.getSessions().get(0).getSessionToken(), is(sessionToken1.getSessionToken())); }
@Test public void getMostRecentSession() { CreateUserRequest request = getDefaultCreateUserRequest(); ExternalUser createdUser = userService.createUser(request, Role.authenticated); String sessionToken = createdUser.getSessions().get(0).getSessionToken(); LoginRequest loginRequest = new LoginRequest(); loginRequest.setUsername(request.getUser().getEmailAddress()); loginRequest.setPassword(request.getPassword().getPassword()); String session1 = userService.login(loginRequest).getSessions().get(0).getSessionToken(); String session2 = userService.login(loginRequest).getSessions().get(0).getSessionToken(); ExternalUser updatedUser = userService.getUser(createdUser, createdUser.getId()); assertThat(updatedUser.getSessions().size(), is(3)); assertThat(updatedUser.getActiveSession(), is(nullValue())); assertThat( updatedUser.getSessions().get(0).getSessionToken(), is(session2)); // most recently updated session }
public void login() throws LogonException { // Make sure user is not already logged on if (session.alreadyLoggedOn()) throw new LogonException("Already Logged On; Session Exists"); LoginRequest loginRequest = new LoginRequest(); loginRequest.setUserName(session.getUserName()); LoginResponse loginResponse = (LoginResponse) wsTemplate.marshalSendAndReceive(loginRequest); System.out.println("login response = " + loginResponse.getSessionId()); // See if the server returned an error. If so, throw it to caller as an exception if (loginResponse.getSessionId().equalsIgnoreCase("Already Logged On")) throw new LogonException(loginResponse.getSessionId()); session.setSessionId(loginResponse.getSessionId()); }
@Override public void messageReceived(Object message) throws IOException { LoginRequest request = (LoginRequest) message; if (request.getServerSessionKey() != serverSessionKey) throw new IOException("Server session key mismatch."); boolean versionMismatch = false; if (request.getVersion() != server.getVersion()) versionMismatch = true; ChecksumTable table = server.getChecksumTable(); int[] crc = request.getCrc(); for (int i = 0; i < crc.length; i++) { if (table.getEntry(i).getCrc() != crc[i]) { versionMismatch = true; break; } } if (versionMismatch) { sendLoginFailure(LoginResponse.STATUS_GAME_UPDATED); return; } long clientSessionKey = request.getClientSessionKey(); long serverSessionKey = request.getServerSessionKey(); int[] seed = new int[4]; seed[0] = (int) (clientSessionKey >> 32); seed[1] = (int) clientSessionKey; seed[2] = (int) (serverSessionKey >> 32); seed[3] = (int) serverSessionKey; inRandom = new IsaacRandom(seed); for (int i = 0; i < seed.length; i++) seed[i] += 50; outRandom = new IsaacRandom(seed); displayMode = request.getDisplayMode(); service.addLoginRequest(this, request); }
@Test(expected = ValidationException.class) public void invalidLoginRequestNullEmailAddress() { LoginRequest request = new LoginRequest(); request.setPassword("password"); userService.login(request); }
@Test(expected = ValidationException.class) public void invalidLoginRequestNullPassword() { LoginRequest request = new LoginRequest(); request.setUsername(createRandomEmailAddress()); userService.login(request); }
@Override public AccountDetails getAccountDetails() { return new AccountDetails(123, loginRequest.toString(), "GBP", "legal entity", "locale", true); }