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