1
22
23 package com.liferay.util.servlet;
24
25 import com.liferay.portal.kernel.util.ServerDetector;
26
27 import java.util.Map;
28
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletRequestWrapper;
31 import javax.servlet.http.HttpSession;
32
33
39 public class SharedSessionServletRequest extends HttpServletRequestWrapper {
40
41 public SharedSessionServletRequest(
42 HttpServletRequest request, Map<String, Object> sharedSessionAttributes,
43 boolean shared) {
44
45 super(request);
46
47 _sharedSessionAttributes = sharedSessionAttributes;
48
49 _session = getSharedSessionWrapper(request.getSession());
50 _shared = shared;
51 }
52
53 public HttpSession getSession() {
54 if (_shared) {
55 return _session;
56 }
57 else {
58 return getSharedSessionWrapper(super.getSession());
59 }
60 }
61
62 public HttpSession getSession(boolean create) {
63 if (_shared) {
64 return _session;
65 }
66 else {
67 return getSharedSessionWrapper(super.getSession(create));
68 }
69 }
70
71 protected HttpSession getSharedSessionWrapper(HttpSession session) {
72 if (!ServerDetector.isJOnAS() && ServerDetector.isJetty()) {
73 return new JettySharedSessionWrapper(
74 session, _sharedSessionAttributes);
75 }
76 else {
77 return new SharedSessionWrapper(session, _sharedSessionAttributes);
78 }
79 }
80
81 private HttpSession _session;
82 private Map<String, Object> _sharedSessionAttributes;
83 private boolean _shared;
84
85 }