From: Jean-Baptiste Lievremont Date: Wed, 29 Jan 2014 14:52:14 +0000 (+0100) Subject: SONAR-5010 Push parsed parameters from Rails to WS handlers (workaround for missing... X-Git-Tag: 4.2~397 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=55a3c42c91b46a02ea5fe98425f14a2892c956cf;p=sonarqube.git SONAR-5010 Push parsed parameters from Rails to WS handlers (workaround for missing parameters in request) --- 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 params; - public ServletRequest(HttpServletRequest source) { + public ServletRequest(HttpServletRequest source, Map 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.