2014-10-22 10:35:50 +02:00
|
|
|
package com.commafeed.frontend.session;
|
2014-10-22 01:17:33 -04:00
|
|
|
|
2014-12-12 10:18:59 +01:00
|
|
|
import java.util.Optional;
|
|
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
|
|
|
|
|
|
import com.commafeed.backend.model.User;
|
|
|
|
|
|
2022-01-02 20:55:46 +01:00
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
@RequiredArgsConstructor()
|
|
|
|
|
public class SessionHelper {
|
2014-12-12 10:18:59 +01:00
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
private static final String SESSION_KEY_USER = "user";
|
2014-12-12 10:18:59 +01:00
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
private final HttpServletRequest request;
|
2014-12-12 10:18:59 +01:00
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
public Optional<User> getLoggedInUser() {
|
|
|
|
|
Optional<HttpSession> session = getSession(false);
|
2014-12-12 10:18:59 +01:00
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
if (session.isPresent()) {
|
|
|
|
|
User user = (User) session.get().getAttribute(SESSION_KEY_USER);
|
2014-12-12 10:18:59 +01:00
|
|
|
return Optional.ofNullable(user);
|
2014-10-22 01:17:33 -04:00
|
|
|
}
|
2014-12-12 10:18:59 +01:00
|
|
|
|
|
|
|
|
return Optional.empty();
|
2014-10-22 01:17:33 -04:00
|
|
|
}
|
2014-12-12 10:18:59 +01:00
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
public void setLoggedInUser(User user) {
|
|
|
|
|
Optional<HttpSession> session = getSession(true);
|
|
|
|
|
session.get().setAttribute(SESSION_KEY_USER, user);
|
|
|
|
|
}
|
2014-12-12 10:18:59 +01:00
|
|
|
|
2014-10-22 01:17:33 -04:00
|
|
|
private Optional<HttpSession> getSession(boolean force) {
|
|
|
|
|
HttpSession session = request.getSession(force);
|
2014-12-12 10:18:59 +01:00
|
|
|
return Optional.ofNullable(session);
|
2014-10-22 01:17:33 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|