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