]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/internal/http/WebCmsSessionImpl.java
ce819051870b11dd59caf3c37bab451db4855625
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / http / WebCmsSessionImpl.java
1 package org.argeo.cms.internal.http;
2
3 import java.util.Locale;
4
5 import javax.security.auth.Subject;
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpSession;
8
9 import org.argeo.cms.internal.auth.CmsSessionImpl;
10 import org.osgi.service.useradmin.Authorization;
11
12 /** CMS session implementation in a web context. */
13 public class WebCmsSessionImpl extends CmsSessionImpl {
14 private static final long serialVersionUID = -5178883380637048025L;
15 private HttpSession httpSession;
16
17 public WebCmsSessionImpl(Subject initialSubject, Authorization authorization, Locale locale,
18 HttpServletRequest request) {
19 super(initialSubject, authorization, locale, request.getSession(false).getId());
20 httpSession = request.getSession(false);
21 }
22
23 @Override
24 public boolean isValid() {
25 if (isClosed())
26 return false;
27 try {// test http session
28 httpSession.getCreationTime();
29 return true;
30 } catch (IllegalStateException ise) {
31 return false;
32 }
33 }
34
35 public static CmsSessionImpl getCmsSession(HttpServletRequest request) {
36 return CmsSessionImpl.getByLocalId(request.getSession(false).getId());
37 }
38 }