package org.argeo.cms.internal.http;
+import java.util.Locale;
+
import javax.security.auth.Subject;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import org.argeo.cms.auth.CmsSession;
+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 HttpSession httpSession;
+ private static final long serialVersionUID = -5178883380637048025L;
+ private RemoteAuthSession httpSession;
- public WebCmsSessionImpl(Subject initialSubject, Authorization authorization, HttpServletRequest request) {
- super(initialSubject, authorization, request.getSession(false).getId());
- httpSession = request.getSession(false);
+ public WebCmsSessionImpl(Subject initialSubject, Authorization authorization, Locale locale,
+ RemoteAuthRequest request) {
+ super(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;
- }
+ return httpSession.isValid();
}
- public static CmsSession getCmsSession(HttpServletRequest request) {
- return CmsSessionImpl.getByLocalId(request.getSession(false).getId());
+ public static CmsSessionImpl getCmsSession(RemoteAuthRequest request) {
+ return CmsSessionImpl.getByLocalId(request.getSession().getId());
}
}