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));