You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by lr...@apache.org on 2008/06/24 22:55:24 UTC
svn commit: r671340 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
Author: lryan
Date: Tue Jun 24 13:55:24 2008
New Revision: 671340
URL: http://svn.apache.org/viewvc?rev=671340&view=rev
Log:
Dont throw expections on invalid URIs during rewrtie. Just return the invalid content unmodified
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java?rev=671340&r1=671339&r2=671340&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java Tue Jun 24 13:55:24 2008
@@ -21,18 +21,22 @@
import org.apache.shindig.common.util.Utf8UrlCoder;
import java.net.URI;
+import java.net.URISyntaxException;
/**
- * Simple link rewriter that will rewrite a link to the form
- * http://www.host.com/proxy/url=<url encoded link>&gadget=<gadget spec url>&fp=<fingeprint of rewriting rule>
+ * Simple link rewriter that will rewrite a link to the form http://www.host.com/proxy/url=<url
+ * encoded link>&gadget=<gadget spec url>&fp=<fingeprint of rewriting rule>
*/
public class ProxyingLinkRewriter implements LinkRewriter {
private final String prefix;
+
private final ContentRewriterFeature rewriterFeature;
+
private final URI gadgetUri;
- public ProxyingLinkRewriter(URI gadgetUri, ContentRewriterFeature rewriterFeature, String prefix) {
+ public ProxyingLinkRewriter(URI gadgetUri, ContentRewriterFeature rewriterFeature,
+ String prefix) {
this.prefix = prefix;
this.rewriterFeature = rewriterFeature;
this.gadgetUri = gadgetUri;
@@ -44,17 +48,23 @@
if (link.length() == 0) {
return link;
}
- URI uri = context.resolve(link);
- if (rewriterFeature.shouldRewriteURL(uri.toString())) {
- return prefix
- + Utf8UrlCoder.encode(uri.toString())
- + "&gadget="
- + Utf8UrlCoder.encode(gadgetUri.toString())
- + "&fp="
- + rewriterFeature.getFingerprint();
- } else {
- return uri.toString();
+
+ try {
+ URI linkUri = new URI(link);
+ URI uri = context.resolve(linkUri);
+ if (rewriterFeature.shouldRewriteURL(uri.toString())) {
+ return prefix
+ + Utf8UrlCoder.encode(uri.toString())
+ + "&gadget="
+ + Utf8UrlCoder.encode(gadgetUri.toString())
+ + "&fp="
+ + rewriterFeature.getFingerprint();
+ } else {
+ return uri.toString();
+ }
+ } catch (URISyntaxException use) {
+ // Unrecoverable. Just return link
+ return link;
}
}
-
}
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java?rev=671340&r1=671339&r2=671340&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java Tue Jun 24 13:55:24 2008
@@ -50,6 +50,12 @@
rewrite(val));
}
+ public void testInvalidCharRewrite() {
+ String val = "/images/opensocial/movie_trivia/76/${quiz.picture_url}";
+ assertEquals("/images/opensocial/movie_trivia/76/${quiz.picture_url}",
+ rewrite(val));
+ }
+
public void testEmpty() {
String val = " ";
assertEquals("", rewrite(val));