View Javadoc
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  public class WebCmsSessionImpl extends CmsSessionImpl {
13  	// private final static Log log =
14  	// LogFactory.getLog(WebCmsSessionImpl.class);
15  
16  	private HttpSession httpSession;
17  
18  	public WebCmsSessionImpl(Subject initialSubject, Authorization authorization, Locale locale, 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  }