You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ga...@apache.org on 2011/03/08 19:58:50 UTC

svn commit: r1079486 - in /shindig/trunk/java: common/conf/ gadgets/src/main/java/org/apache/shindig/gadgets/ gadgets/src/main/java/org/apache/shindig/gadgets/uri/ gadgets/src/test/java/org/apache/shindig/gadgets/uri/

Author: gagan
Date: Tue Mar  8 18:58:50 2011
New Revision: 1079486

URL: http://svn.apache.org/viewvc?rev=1079486&view=rev
Log:
Patch by pulkitgoyal2000 | Issue 4050043: Concat & Proxied Url should not contain complete url as gadget param | http://codereview.appspot.com/4050043/

Added:
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/ProxyUriBaseTest.java   (with props)
Modified:
    shindig/trunk/java/common/conf/shindig.properties
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java

Modified: shindig/trunk/java/common/conf/shindig.properties
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/conf/shindig.properties?rev=1079486&r1=1079485&r2=1079486&view=diff
==============================================================================
--- shindig/trunk/java/common/conf/shindig.properties (original)
+++ shindig/trunk/java/common/conf/shindig.properties Tue Mar  8 18:58:50 2011
@@ -164,3 +164,5 @@ vanillaCajaParser.needsDebugData=true
 # Allow non-SSL OAuth 2.0 bearer tokens
 org.apache.shindig.auth.oauth2-require-ssl=false
 
+# Set gadget param in proxied uri as authority if this is true
+org.apache.shindig.gadgets.uri.setAuthorityAsGadgetParam=false
\ No newline at end of file

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java?rev=1079486&r1=1079485&r2=1079486&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java Tue Mar  8 18:58:50 2011
@@ -41,6 +41,7 @@ import org.apache.shindig.gadgets.rewrit
 import org.apache.shindig.gadgets.servlet.GadgetsHandler;
 import org.apache.shindig.gadgets.servlet.HttpRequestHandler;
 import org.apache.shindig.gadgets.templates.TemplateModule;
+import org.apache.shindig.gadgets.uri.ProxyUriBase;
 import org.apache.shindig.gadgets.uri.UriModule;
 
 import org.apache.shindig.gadgets.variables.SubstituterModule;
@@ -80,7 +81,7 @@ public class DefaultGuiceModule extends 
 
     // We perform static injection on HttpResponse for cache TTLs.
     requestStaticInjection(HttpResponse.class);
-
+    requestStaticInjection(ProxyUriBase.class);
     registerGadgetHandlers();
     registerFeatureHandlers();
   }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java?rev=1079486&r1=1079485&r2=1079486&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java Tue Mar  8 18:58:50 2011
@@ -21,6 +21,8 @@ package org.apache.shindig.gadgets.uri;
 import com.google.common.base.Objects;
 
 import com.google.common.base.Strings;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
 import org.apache.commons.lang.math.NumberUtils;
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.common.uri.UriBuilder;
@@ -39,6 +41,11 @@ import java.util.Map;
  * @since 2.0.0
  */
 public class ProxyUriBase {
+
+  @Inject(optional=true)
+  @Named("org.apache.shindig.gadgets.uri.setAuthorityAsGadgetParam")
+  static private boolean setAuthorityAsGadgetParam = false;
+
   private UriStatus status = null;
   private Integer refresh = null;
   private boolean debug = false;
@@ -57,7 +64,8 @@ public class ProxyUriBase {
          gadget.getContext().getDebug(),
          gadget.getContext().getIgnoreCache(),
          gadget.getContext().getContainer(),
-         gadget.getSpec().getUrl().toString());
+         setAuthorityAsGadgetParam ? gadget.getSpec().getUrl().getAuthority() :
+             gadget.getSpec().getUrl().toString());
   }
 
   protected ProxyUriBase(UriStatus status, Uri origUri) {

Added: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/ProxyUriBaseTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/ProxyUriBaseTest.java?rev=1079486&view=auto
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/ProxyUriBaseTest.java (added)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/ProxyUriBaseTest.java Tue Mar  8 18:58:50 2011
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.shindig.gadgets.uri;
+
+import static org.junit.Assert.assertEquals;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Guice;
+import com.google.inject.name.Names;
+import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.gadgets.Gadget;
+import org.apache.shindig.gadgets.GadgetContext;
+import org.apache.shindig.gadgets.spec.GadgetSpec;
+import org.apache.shindig.gadgets.spec.SpecParserException;
+
+import org.junit.Test;
+
+public class ProxyUriBaseTest {
+  final static Uri URI = Uri.parse("http://www.example.org/foo.html");
+
+  private Gadget createGadget(final String container) throws SpecParserException {
+    GadgetSpec spec = new GadgetSpec(URI,
+        "<Module><ModulePrefs author=\"a\" title=\"t\"></ModulePrefs>" +
+        "<Content></Content></Module>");
+    return new Gadget().setContext(new GadgetContext() {
+      @Override                     
+      public String getParameter(String name) {
+        return "0";
+      }
+
+      @Override
+      public String getContainer() {
+        return container;
+      }
+    }).setSpec(spec);
+  }
+
+  @Test
+  public void testWithSetAuthorityAsGadgetParam() throws Exception {
+    injectAuthorityAsGadgetParam(true);
+    ProxyUriBase proxyUriBase = new ProxyUriBase(createGadget(null));
+    assertEquals(URI.getAuthority(), proxyUriBase.getGadget());
+
+    injectAuthorityAsGadgetParam(false);
+    proxyUriBase = new ProxyUriBase(createGadget(null));
+    assertEquals(URI.toString(), proxyUriBase.getGadget());
+  }
+
+  private void injectAuthorityAsGadgetParam(final Boolean val) {
+    Guice.createInjector(new AbstractModule() {
+      @Override
+      protected void configure() {
+        bind(Boolean.class).annotatedWith(
+            Names.named("org.apache.shindig.gadgets.uri.setAuthorityAsGadgetParam"))
+            .toInstance(val);
+        requestStaticInjection(ProxyUriBase.class);
+      }
+    });
+  }
+}

Propchange: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/ProxyUriBaseTest.java
------------------------------------------------------------------------------
    svn:eol-style = native