package com.lyndir.omicron.webapp.data.service;
import com.google.common.base.Preconditions;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.lyndir.omicron.webapp.data.User;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.servlet.http.HttpSession;
/**
* @author lhunath, 1/28/2014
*/
public class SessionManager {
private static final String USER = "USER";
private final Provider<HttpSession> httpSessionProvider;
@Inject
public SessionManager(final Provider<HttpSession> httpSessionProvider) {
this.httpSessionProvider = httpSessionProvider;
}
@Nonnull
public User getUser() {
return Preconditions.checkNotNull( findUser(), "No user. Please first authenticate." );
}
@Nullable
public User findUser() {
return (User) httpSessionProvider.get().getAttribute( USER );
}
public void setUser(final User user) {
httpSessionProvider.get().setAttribute( USER, user );
}
}