Author: cziegeler
Date: Mon Mar 10 15:36:37 2014
New Revision: 1575974
URL: http://svn.apache.org/r1575974
Log:
SLING-3439 : SlingRequestProcessor.processRequest(httpServletRequest,
httpServletResponse, resourceResolver) no longer passes request params through
Modified:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java
Modified:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java?rev=1575974&r1=1575973&r2=1575974&view=diff
==============================================================================
---
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java
(original)
+++
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/parameters/ParameterSupport.java
Mon Mar 10 15:36:37 2014
@@ -228,6 +228,7 @@ public class ParameterSupport {
// SLING-152 Get parameters from the servlet Container
ParameterMap parameters = new ParameterMap();
+ final boolean isPost =
"POST".equals(this.getServletRequest().getMethod());
// Query String
final String query = getServletRequest().getQueryString();
if (query != null) {
@@ -241,10 +242,12 @@ public class ParameterSupport {
} catch (IOException e) {
this.log.error("getRequestParameterMapInternal: Error
parsing request", e);
}
+ } else if (!isPost) {
+ getContainerParameters(parameters, encoding);
}
// POST requests
- if ("POST".equals(this.getServletRequest().getMethod())) {
+ if (isPost) {
// WWW URL Form Encoded POST
if (isWWWFormEncodedContent(this.getServletRequest())) {
try {
@@ -275,6 +278,21 @@ public class ParameterSupport {
return this.postParameterMap;
}
+ private void getContainerParameters(final ParameterMap parameters, final
String encoding) {
+ final Map<?, ?> pMap = getServletRequest().getParameterMap();
+ for (Map.Entry<?, ?> entry : pMap.entrySet()) {
+
+ final String name = (String) entry.getKey();
+ final String[] values = (String[]) entry.getValue();
+
+ for (int i = 0; i < values.length; i++) {
+ parameters.addParameter(new ContainerRequestParameter(
+ name, values[i], encoding), false);
+ }
+
+ }
+ }
+
private static final boolean isWWWFormEncodedContent(HttpServletRequest
request) {
String contentType = request.getContentType();
if (contentType == null) {
@@ -303,6 +321,7 @@ public class ParameterSupport {
ParameterSupport.location));
RequestContext rc = new
ServletRequestContext(this.getServletRequest()) {
+ @Override
public String getCharacterEncoding() {
String enc = super.getCharacterEncoding();
return (enc != null) ? enc : Util.ENCODING_DIRECT;