001
014
015 package com.liferay.portal.kernel.servlet;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.portlet.LiferayPortletSession;
020 import com.liferay.portal.kernel.portlet.PortletFilterUtil;
021 import com.liferay.portal.kernel.util.JavaConstants;
022 import com.liferay.portal.kernel.util.WebKeys;
023
024 import java.io.IOException;
025
026 import javax.portlet.PortletException;
027 import javax.portlet.PortletRequest;
028 import javax.portlet.PortletResponse;
029 import javax.portlet.filter.FilterChain;
030
031 import javax.servlet.ServletException;
032 import javax.servlet.http.HttpServlet;
033 import javax.servlet.http.HttpServletRequest;
034 import javax.servlet.http.HttpServletResponse;
035 import javax.servlet.http.HttpSession;
036
037
040 public class PortletServlet extends HttpServlet {
041
042 public static final String PORTLET_APP =
043 "com.liferay.portal.model.PortletApp";
044
045
049 @Deprecated
050 public static final String PORTLET_CLASS_LOADER =
051 PluginContextListener.PLUGIN_CLASS_LOADER;
052
053 public static final String PORTLET_SERVLET_CONFIG =
054 "com.liferay.portal.kernel.servlet.PortletServletConfig";
055
056 public static final String PORTLET_SERVLET_FILTER_CHAIN =
057 "com.liferay.portal.kernel.servlet.PortletServletFilterChain";
058
059 public static final String PORTLET_SERVLET_REQUEST =
060 "com.liferay.portal.kernel.servlet.PortletServletRequest";
061
062 public static final String PORTLET_SERVLET_RESPONSE =
063 "com.liferay.portal.kernel.servlet.PortletServletResponse";
064
065 @Override
066 public void service(
067 HttpServletRequest request, HttpServletResponse response)
068 throws IOException, ServletException {
069
070 if (request.getAttribute(WebKeys.EXTEND_SESSION) != null) {
071 request.removeAttribute(WebKeys.EXTEND_SESSION);
072
073 HttpSession session = request.getSession(false);
074
075 if (session != null) {
076 session.setAttribute(WebKeys.EXTEND_SESSION, Boolean.TRUE);
077
078 session.removeAttribute(WebKeys.EXTEND_SESSION);
079 }
080
081 return;
082 }
083
084 String portletId = (String)request.getAttribute(WebKeys.PORTLET_ID);
085
086 PortletRequest portletRequest = (PortletRequest)request.getAttribute(
087 JavaConstants.JAVAX_PORTLET_REQUEST);
088
089 PortletResponse portletResponse = (PortletResponse)request.getAttribute(
090 JavaConstants.JAVAX_PORTLET_RESPONSE);
091
092 String lifecycle = (String)request.getAttribute(
093 PortletRequest.LIFECYCLE_PHASE);
094
095 FilterChain filterChain = (FilterChain)request.getAttribute(
096 PORTLET_SERVLET_FILTER_CHAIN);
097
098 LiferayPortletSession portletSession =
099 (LiferayPortletSession)portletRequest.getPortletSession();
100
101 portletRequest.setAttribute(WebKeys.PORTLET_ID, portletId);
102 portletRequest.setAttribute(PORTLET_SERVLET_CONFIG, getServletConfig());
103 portletRequest.setAttribute(PORTLET_SERVLET_REQUEST, request);
104 portletRequest.setAttribute(PORTLET_SERVLET_RESPONSE, response);
105
106 HttpSession session = request.getSession();
107
108 PortletSessionTracker.add(session);
109
110 portletSession.setHttpSession(session);
111
112 try {
113 PortletFilterUtil.doFilter(
114 portletRequest, portletResponse, lifecycle, filterChain);
115 }
116 catch (PortletException pe) {
117 _log.error(pe, pe);
118
119 throw new ServletException(pe);
120 }
121 }
122
123 private static final Log _log = LogFactoryUtil.getLog(PortletServlet.class);
124
125 }