1
22
23 package com.liferay.util.bridges.php;
24
25 import com.liferay.portal.kernel.util.GetterUtil;
26 import com.liferay.portal.kernel.util.JavaConstants;
27 import com.liferay.portal.kernel.util.StringPool;
28
29 import java.util.Enumeration;
30 import java.util.Map;
31
32 import javax.portlet.PortletConfig;
33 import javax.portlet.RenderRequest;
34 import javax.portlet.RenderResponse;
35
36 import javax.servlet.ServletConfig;
37 import javax.servlet.http.HttpServletRequest;
38 import javax.servlet.http.HttpServletRequestWrapper;
39
40
46 public class PHPServletRequest extends HttpServletRequestWrapper {
47
48 public PHPServletRequest(
49 HttpServletRequest request, ServletConfig servletConfig,
50 RenderRequest renderRequest, RenderResponse renderResponse,
51 PortletConfig portletConfig, String phpURI) {
52
53 super(request);
54
55 _servletConfig = servletConfig;
56 _renderRequest = renderRequest;
57 _renderResponse = renderResponse;
58 _portletConfig = portletConfig;
59
60 StringBuilder sb = new StringBuilder();
61
62 int pos = phpURI.indexOf(StringPool.QUESTION);
63
64 if (pos != -1) {
65 _path = phpURI.substring(0, pos);
66
67 sb.append(phpURI.substring(pos + 1));
68 }
69 else {
70 _path = phpURI;
71 }
72
73 if (GetterUtil.getBoolean(
74 portletConfig.getInitParameter("add-portlet-params"), true)) {
75
76 sb.append(StringPool.AMPERSAND);
77 sb.append("portlet_namespace");
78 sb.append(StringPool.EQUAL);
79 sb.append(_renderResponse.getNamespace());
80 sb.append(StringPool.AMPERSAND);
81 sb.append("portlet_name");
82 sb.append(StringPool.EQUAL);
83 sb.append(_portletConfig.getPortletName());
84 }
85
86 _queryString = sb.toString();
87
88 request.setAttribute(
89 JavaConstants.JAVAX_SERVLET_INCLUDE_QUERY_STRING, getQueryString());
90 request.setAttribute(
91 JavaConstants.JAVAX_SERVLET_INCLUDE_PATH_INFO, getPathInfo());
92 request.setAttribute(
93 JavaConstants.JAVAX_SERVLET_INCLUDE_REQUEST_URI, getRequestURI());
94 request.setAttribute(
95 JavaConstants.JAVAX_SERVLET_INCLUDE_SERVLET_PATH, _path);
96 }
97
98 public String getContextPath() {
99 return StringPool.SLASH;
100 }
101
102 public String getParameter(String name) {
103 return _renderRequest.getParameter(name);
104 }
105
106 public Map<String, String[]> getParameterMap() {
107 return _renderRequest.getParameterMap();
108 }
109
110 public Enumeration<String> getParameterNames() {
111 return _renderRequest.getParameterNames();
112 }
113
114 public String[] getParameterValues(String name) {
115 return _renderRequest.getParameterValues(name);
116 }
117
118 public String getPathInfo() {
119 return StringPool.BLANK;
120 }
121
122 public String getPathTranslated() {
123 return StringPool.BLANK;
124 }
125
126 public String getQueryString() {
127 return _queryString;
128 }
129
130 public String getRealPath(String path) {
131 return _servletConfig.getServletContext().getRealPath(path);
132 }
133
134 public String getRequestURI() {
135 return _path + StringPool.QUESTION + _queryString;
136 }
137
138 public StringBuffer getRequestURL() {
139 StringBuffer sb = new StringBuffer();
140
141 sb.append(getRequest().getProtocol());
142 sb.append("://");
143 sb.append(getRequest().getRemoteHost());
144 sb.append(StringPool.COLON);
145 sb.append(getRequest().getServerPort());
146 sb.append(StringPool.SLASH);
147 sb.append(getRequestURI());
148
149 return sb;
150 }
151
152 public String getServletPath() {
153 return _path;
154 }
155
156 private ServletConfig _servletConfig;
157 private PortletConfig _portletConfig;
158 private RenderRequest _renderRequest;
159 private RenderResponse _renderResponse;
160 private String _queryString;
161 private String _path;
162
163 }