Refactored UserREST login to populate session itself

This commit is contained in:
Sankaranarayanan Viswanathan
2014-10-09 08:38:50 -04:00
parent e38778b4d0
commit 54cc265ee6
3 changed files with 6 additions and 8 deletions

View File

@@ -21,6 +21,7 @@ import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.service.internal.PostLoginActivities;
import com.commafeed.frontend.resource.UserREST;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
@@ -28,8 +29,6 @@ import com.google.common.base.Preconditions;
@Singleton
public class UserService {
private static final String SESSION_KEY_USER = "user";
private final FeedCategoryDAO feedCategoryDAO;
private final UserDAO userDAO;
private final UserSettingsDAO userSettingsDAO;
@@ -67,7 +66,7 @@ public class UserService {
public Optional<User> login(String nameOrEmail, String password, HttpSession sessionToFill) {
Optional<User> user = login(nameOrEmail, password);
if (user.isPresent()) {
sessionToFill.setAttribute(SESSION_KEY_USER, user.get());
sessionToFill.setAttribute(UserREST.SESSION_KEY_USER, user.get());
}
return user;
}
@@ -77,7 +76,7 @@ public class UserService {
*/
public Optional<User> login(HttpSession session) {
if (session != null) {
User user = (User) session.getAttribute(SESSION_KEY_USER);
User user = (User) session.getAttribute(UserREST.SESSION_KEY_USER);
if (user != null) {
afterLogin(user);
return Optional.of(user);

View File

@@ -79,6 +79,7 @@ public class UserREST {
private final PasswordEncryptionService encryptionService;
private final MailService mailService;
private final CommaFeedConfiguration config;
public static final String SESSION_KEY_USER = "user";
@Path("/settings")
@GET
@@ -243,8 +244,9 @@ public class UserREST {
@UnitOfWork
@ApiOperation(value = "Login and create a session")
public Response login(@ApiParam(required = true) LoginRequest req, @Session HttpSession session) {
Optional<User> user = userService.login(req.getName(), req.getPassword(), session);
Optional<User> user = userService.login(req.getName(), req.getPassword());
if (user.isPresent()) {
session.setAttribute(SESSION_KEY_USER, user.get());
return Response.ok().build();
} else {
return Response.status(Response.Status.UNAUTHORIZED).entity("wrong username or password").build();

View File

@@ -1,6 +1,5 @@
package com.commafeed.frontend.resource;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
@@ -25,7 +24,6 @@ public class UserRestTest {
// Create UserService partial mock
UserService service = mock(UserService.class);
when(service.login("user", "password")).thenReturn(absentUser);
when(service.login(any(String.class), any(String.class), any(HttpSession.class))).thenCallRealMethod();
HttpSession session = mock(HttpSession.class);
UserREST userREST = new UserREST(null, null, null, service, null, null, null);
@@ -47,7 +45,6 @@ public class UserRestTest {
// Create UserService partial mock
UserService service = mock(UserService.class);
when(service.login("user", "password")).thenReturn(Optional.of(user));
when(service.login(any(String.class), any(String.class), any(HttpSession.class))).thenCallRealMethod();
HttpSession session = mock(HttpSession.class);
UserREST userREST = new UserREST(null, null, null, service, null, null, null);