]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5010 Push parsed parameters from Rails to WS handlers (workaround for missing...
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Wed, 29 Jan 2014 14:52:14 +0000 (15:52 +0100)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Wed, 29 Jan 2014 14:52:27 +0000 (15:52 +0100)
sonar-server/src/main/java/org/sonar/server/ws/ServletRequest.java
sonar-server/src/main/webapp/WEB-INF/app/controllers/api/java_ws_controller.rb

index cd3d5d8b7a5f97bca329b383142a74aaa54f8545..d7e56961ac7d50e9256e6c5c859548d9988da45a 100644 (file)
@@ -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;
   }
 
 }
index fb7de582ef1459d1e44c5eef3c356b6f2e9cdba1..2c5d0d7ce8d6ef41fbea9e3eb1bca915d984d95d 100644 (file)
@@ -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.