package org.argeo.cms.internal.http;
import java.util.Locale;
+import java.util.UUID;
import javax.security.auth.Subject;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import org.argeo.cms.auth.RemoteAuthRequest;
+import org.argeo.cms.auth.RemoteAuthSession;
import org.argeo.cms.internal.auth.CmsSessionImpl;
import org.osgi.service.useradmin.Authorization;
/** CMS session implementation in a web context. */
public class WebCmsSessionImpl extends CmsSessionImpl {
- // private final static Log log =
- // LogFactory.getLog(WebCmsSessionImpl.class);
+ private static final long serialVersionUID = -5178883380637048025L;
+ private RemoteAuthSession httpSession;
- private HttpSession httpSession;
-
- public WebCmsSessionImpl(Subject initialSubject, Authorization authorization, Locale locale,
- HttpServletRequest request) {
- super(initialSubject, authorization, locale, request.getSession(false).getId());
- httpSession = request.getSession(false);
+ public WebCmsSessionImpl(UUID uuid, Subject initialSubject, Authorization authorization, Locale locale,
+ RemoteAuthRequest request) {
+ super(uuid, initialSubject, authorization, locale, request.getSession().getId());
+ httpSession = request.getSession();
}
@Override
public boolean isValid() {
if (isClosed())
return false;
- try {// test http session
- httpSession.getCreationTime();
- return true;
- } catch (IllegalStateException ise) {
- return false;
- }
- }
-
- public static CmsSessionImpl getCmsSession(HttpServletRequest request) {
- return CmsSessionImpl.getByLocalId(request.getSession(false).getId());
+ return httpSession.isValid();
}
}