forked from Archives/Athou_commafeed
Refactored UserREST login to populate session itself
This commit is contained in:
@@ -21,6 +21,7 @@ import com.commafeed.backend.model.User;
|
|||||||
import com.commafeed.backend.model.UserRole;
|
import com.commafeed.backend.model.UserRole;
|
||||||
import com.commafeed.backend.model.UserRole.Role;
|
import com.commafeed.backend.model.UserRole.Role;
|
||||||
import com.commafeed.backend.service.internal.PostLoginActivities;
|
import com.commafeed.backend.service.internal.PostLoginActivities;
|
||||||
|
import com.commafeed.frontend.resource.UserREST;
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
|
|
||||||
@@ -28,8 +29,6 @@ import com.google.common.base.Preconditions;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class UserService {
|
public class UserService {
|
||||||
|
|
||||||
private static final String SESSION_KEY_USER = "user";
|
|
||||||
|
|
||||||
private final FeedCategoryDAO feedCategoryDAO;
|
private final FeedCategoryDAO feedCategoryDAO;
|
||||||
private final UserDAO userDAO;
|
private final UserDAO userDAO;
|
||||||
private final UserSettingsDAO userSettingsDAO;
|
private final UserSettingsDAO userSettingsDAO;
|
||||||
@@ -67,7 +66,7 @@ public class UserService {
|
|||||||
public Optional<User> login(String nameOrEmail, String password, HttpSession sessionToFill) {
|
public Optional<User> login(String nameOrEmail, String password, HttpSession sessionToFill) {
|
||||||
Optional<User> user = login(nameOrEmail, password);
|
Optional<User> user = login(nameOrEmail, password);
|
||||||
if (user.isPresent()) {
|
if (user.isPresent()) {
|
||||||
sessionToFill.setAttribute(SESSION_KEY_USER, user.get());
|
sessionToFill.setAttribute(UserREST.SESSION_KEY_USER, user.get());
|
||||||
}
|
}
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
@@ -77,7 +76,7 @@ public class UserService {
|
|||||||
*/
|
*/
|
||||||
public Optional<User> login(HttpSession session) {
|
public Optional<User> login(HttpSession session) {
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
User user = (User) session.getAttribute(SESSION_KEY_USER);
|
User user = (User) session.getAttribute(UserREST.SESSION_KEY_USER);
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
afterLogin(user);
|
afterLogin(user);
|
||||||
return Optional.of(user);
|
return Optional.of(user);
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ public class UserREST {
|
|||||||
private final PasswordEncryptionService encryptionService;
|
private final PasswordEncryptionService encryptionService;
|
||||||
private final MailService mailService;
|
private final MailService mailService;
|
||||||
private final CommaFeedConfiguration config;
|
private final CommaFeedConfiguration config;
|
||||||
|
public static final String SESSION_KEY_USER = "user";
|
||||||
|
|
||||||
@Path("/settings")
|
@Path("/settings")
|
||||||
@GET
|
@GET
|
||||||
@@ -243,8 +244,9 @@ public class UserREST {
|
|||||||
@UnitOfWork
|
@UnitOfWork
|
||||||
@ApiOperation(value = "Login and create a session")
|
@ApiOperation(value = "Login and create a session")
|
||||||
public Response login(@ApiParam(required = true) LoginRequest req, @Session HttpSession 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()) {
|
if (user.isPresent()) {
|
||||||
|
session.setAttribute(SESSION_KEY_USER, user.get());
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
} else {
|
} else {
|
||||||
return Response.status(Response.Status.UNAUTHORIZED).entity("wrong username or password").build();
|
return Response.status(Response.Status.UNAUTHORIZED).entity("wrong username or password").build();
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.commafeed.frontend.resource;
|
package com.commafeed.frontend.resource;
|
||||||
|
|
||||||
import static org.mockito.Matchers.any;
|
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||||
@@ -25,7 +24,6 @@ public class UserRestTest {
|
|||||||
// Create UserService partial mock
|
// Create UserService partial mock
|
||||||
UserService service = mock(UserService.class);
|
UserService service = mock(UserService.class);
|
||||||
when(service.login("user", "password")).thenReturn(absentUser);
|
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);
|
HttpSession session = mock(HttpSession.class);
|
||||||
UserREST userREST = new UserREST(null, null, null, service, null, null, null);
|
UserREST userREST = new UserREST(null, null, null, service, null, null, null);
|
||||||
@@ -47,7 +45,6 @@ public class UserRestTest {
|
|||||||
// Create UserService partial mock
|
// Create UserService partial mock
|
||||||
UserService service = mock(UserService.class);
|
UserService service = mock(UserService.class);
|
||||||
when(service.login("user", "password")).thenReturn(Optional.of(user));
|
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);
|
HttpSession session = mock(HttpSession.class);
|
||||||
UserREST userREST = new UserREST(null, null, null, service, null, null, null);
|
UserREST userREST = new UserREST(null, null, null, service, null, null, null);
|
||||||
|
|||||||
Reference in New Issue
Block a user