aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2014-01-29 15:52:14 +0100
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2014-01-29 15:52:27 +0100
commit55a3c42c91b46a02ea5fe98425f14a2892c956cf (patch)
treeb79013e26cb774d4a2a96618a1574ed322c6b0a9
parent9a37480a156494a1486b6fa13b7f0d6c6f71fa19 (diff)
downloadsonarqube-55a3c42c91b46a02ea5fe98425f14a2892c956cf.tar.gz
sonarqube-55a3c42c91b46a02ea5fe98425f14a2892c956cf.zip
SONAR-5010 Push parsed parameters from Rails to WS handlers (workaround for missing parameters in request)
-rw-r--r--sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java12
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/controllers/api/java_ws_controller.rb2
2 files changed, 11 insertions, 3 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java b/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java
index cd3d5d8b7a5..d7e56961ac7 100644
--- a/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java
+++ b/sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java
@@ -21,12 +21,16 @@ package org.sonar.server.ws;
import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
public class ServletRequest extends InternalRequest {
private final HttpServletRequest source;
+ private final Map<String, String> params;
- public ServletRequest(HttpServletRequest source) {
+ public ServletRequest(HttpServletRequest source, Map<String, String> params) {
this.source = source;
+ this.params = params;
}
@Override
@@ -36,7 +40,11 @@ public class ServletRequest extends InternalRequest {
@Override
public String param(String key) {
- return source.getParameter(key);
+ String parameter = source.getParameter(key);
+ if (parameter == null) {
+ parameter = params.get(key);
+ }
+ return parameter;
}
}
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/java_ws_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/java_ws_controller.rb
index fb7de582ef1..2c5d0d7ce8d 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/java_ws_controller.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/java_ws_controller.rb
@@ -31,7 +31,7 @@ class Api::JavaWsController < Api::ApiController
private
def execute(media_type)
- ws_request = Java::OrgSonarServerWs::ServletRequest.new(servlet_request)
+ ws_request = Java::OrgSonarServerWs::ServletRequest.new(servlet_request, params.to_java)
# servlet_request is declared in jruby-rack but not servlet_response !
# request.env must be used.