1
22
23 package com.liferay.portal.apache.bridges.struts;
24
25 import com.liferay.portal.kernel.servlet.HttpHeaders;
26 import com.liferay.portal.kernel.servlet.ServletContextProvider;
27 import com.liferay.portal.kernel.util.ContentTypes;
28 import com.liferay.portal.kernel.util.JavaConstants;
29 import com.liferay.portal.upload.UploadServletRequestImpl;
30 import com.liferay.portal.util.PortalUtil;
31 import com.liferay.portlet.PortletContextImpl;
32
33 import javax.portlet.ActionRequest;
34 import javax.portlet.GenericPortlet;
35 import javax.portlet.PortletContext;
36 import javax.portlet.PortletRequest;
37 import javax.portlet.PortletResponse;
38
39 import javax.servlet.ServletContext;
40 import javax.servlet.http.HttpServletRequest;
41 import javax.servlet.http.HttpServletResponse;
42
43
52 public class LiferayServletContextProvider implements ServletContextProvider {
53
54 public ServletContext getServletContext(GenericPortlet portlet) {
55 PortletContext portletContext = portlet.getPortletContext();
56
57 ServletContext servletContext =
58 (ServletContext)portletContext.getAttribute(
59 JavaConstants.JAVAX_PORTLET_SERVLET_CONTEXT);
60
61 if (servletContext == null) {
62 PortletContextImpl portletContextImpl =
63 (PortletContextImpl)portlet.getPortletContext();
64
65 servletContext = portletContextImpl.getServletContext();
66 }
67
68 return getServletContext(servletContext);
69 }
70
71 public ServletContext getServletContext(ServletContext servletContext) {
72 return new LiferayServletContext(servletContext);
73 }
74
75 public HttpServletRequest getHttpServletRequest(
76 GenericPortlet portlet, PortletRequest portletRequest) {
77
78 HttpServletRequest request = PortalUtil.getHttpServletRequest(
79 portletRequest);
80
81 if (portletRequest instanceof ActionRequest) {
82 String contentType = request.getHeader(HttpHeaders.CONTENT_TYPE);
83
84 if ((contentType != null) &&
85 (contentType.startsWith(ContentTypes.MULTIPART_FORM_DATA))) {
86
87 request = new UploadServletRequestImpl(request);
88 request = new LiferayStrutsRequestImpl(request);
89 }
90 else {
91 request = new LiferayStrutsRequestImpl(request);
92 }
93 }
94 else {
95 request = new LiferayStrutsRequestImpl(request);
96 }
97
98 return request;
99 }
100
101 public HttpServletResponse getHttpServletResponse(
102 GenericPortlet portlet, PortletResponse portletResponse) {
103
104 return PortalUtil.getHttpServletResponse(portletResponse);
105 }
106
107 }