001
014
015 package com.liferay.util.bridges.php;
016
017 import com.liferay.portal.kernel.util.CharPool;
018 import com.liferay.portal.kernel.util.JavaConstants;
019 import com.liferay.portal.kernel.util.StringBundler;
020 import com.liferay.portal.kernel.util.StringPool;
021
022 import java.util.Enumeration;
023 import java.util.Map;
024
025 import javax.portlet.PortletConfig;
026 import javax.portlet.RenderRequest;
027 import javax.portlet.RenderResponse;
028
029 import javax.servlet.ServletConfig;
030 import javax.servlet.http.HttpServletRequest;
031 import javax.servlet.http.HttpServletRequestWrapper;
032
033
036 public class PHPServletRequest extends HttpServletRequestWrapper {
037
038 public PHPServletRequest(
039 HttpServletRequest request, ServletConfig servletConfig,
040 RenderRequest renderRequest, RenderResponse renderResponse,
041 PortletConfig portletConfig, String phpURI, boolean addPortletParams) {
042
043 super(request);
044
045 _servletConfig = servletConfig;
046 _renderRequest = renderRequest;
047 _renderResponse = renderResponse;
048 _portletConfig = portletConfig;
049
050 StringBundler sb = new StringBundler();
051
052 int pos = phpURI.indexOf(CharPool.QUESTION);
053
054 if (pos != -1) {
055 _path = phpURI.substring(0, pos);
056
057 sb.append(phpURI.substring(pos + 1));
058 }
059 else {
060 _path = phpURI;
061 }
062
063 if (addPortletParams) {
064 sb.append(StringPool.AMPERSAND);
065 sb.append("portlet_namespace");
066 sb.append(StringPool.EQUAL);
067 sb.append(_renderResponse.getNamespace());
068 sb.append(StringPool.AMPERSAND);
069 sb.append("portlet_name");
070 sb.append(StringPool.EQUAL);
071 sb.append(_portletConfig.getPortletName());
072 }
073
074 _queryString = sb.toString();
075
076 request.setAttribute(
077 JavaConstants.JAVAX_SERVLET_INCLUDE_QUERY_STRING, getQueryString());
078 request.setAttribute(
079 JavaConstants.JAVAX_SERVLET_INCLUDE_PATH_INFO, getPathInfo());
080 request.setAttribute(
081 JavaConstants.JAVAX_SERVLET_INCLUDE_REQUEST_URI, getRequestURI());
082 request.setAttribute(
083 JavaConstants.JAVAX_SERVLET_INCLUDE_SERVLET_PATH, _path);
084 }
085
086 public String getContextPath() {
087 return StringPool.SLASH;
088 }
089
090 public String getParameter(String name) {
091 return _renderRequest.getParameter(name);
092 }
093
094 public Map<String, String[]> getParameterMap() {
095 return _renderRequest.getParameterMap();
096 }
097
098 public Enumeration<String> getParameterNames() {
099 return _renderRequest.getParameterNames();
100 }
101
102 public String[] getParameterValues(String name) {
103 return _renderRequest.getParameterValues(name);
104 }
105
106 public String getPathInfo() {
107 return StringPool.BLANK;
108 }
109
110 public String getPathTranslated() {
111 return StringPool.BLANK;
112 }
113
114 public String getQueryString() {
115 return _queryString;
116 }
117
118 public String getRealPath(String path) {
119 return _servletConfig.getServletContext().getRealPath(path);
120 }
121
122 public String getRequestURI() {
123 return _path + StringPool.QUESTION + _queryString;
124 }
125
126 public StringBuffer getRequestURL() {
127 StringBuffer sb = new StringBuffer();
128
129 sb.append(getRequest().getProtocol());
130 sb.append(":
131 sb.append(getRequest().getRemoteHost());
132 sb.append(StringPool.COLON);
133 sb.append(getRequest().getServerPort());
134 sb.append(StringPool.SLASH);
135 sb.append(getRequestURI());
136
137 return sb;
138 }
139
140 public String getServletPath() {
141 return _path;
142 }
143
144 private ServletConfig _servletConfig;
145 private PortletConfig _portletConfig;
146 private RenderRequest _renderRequest;
147 private RenderResponse _renderResponse;
148 private String _queryString;
149 private String _path;
150
151 }