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 2009/02/05 02:40:09 UTC
svn commit: r740970 -
/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.java
Author: lryan
Date: Thu Feb 5 01:40:08 2009
New Revision: 740970
URL: http://svn.apache.org/viewvc?rev=740970&view=rev
Log:
Fix ProxyLinkrewriter to detect if link is already proxied and correctly re-proxy the target
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriter.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=740970&r1=740969&r2=740970&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 Thu Feb 5 01:40:08 2009
@@ -29,6 +29,7 @@
public class ProxyingLinkRewriter implements LinkRewriter {
private final String prefix;
+ private final Uri parsedPrefix;
private final ContentRewriterFeature rewriterFeature;
@@ -37,6 +38,7 @@
public ProxyingLinkRewriter(Uri gadgetUri, ContentRewriterFeature rewriterFeature,
String prefix) {
this.prefix = prefix;
+ parsedPrefix = Uri.parse(prefix);
this.rewriterFeature = rewriterFeature;
this.gadgetUri = gadgetUri;
}
@@ -49,7 +51,7 @@
}
try {
- Uri linkUri = Uri.parse(link);
+ Uri linkUri = processLink(Uri.parse(link));
Uri uri = context.resolve(linkUri);
if (rewriterFeature.shouldRewriteURL(uri.toString())) {
String result = prefix
@@ -69,4 +71,15 @@
return link;
}
}
+
+ /**
+ * Preprocess link to avoid double-proxying
+ */
+ private Uri processLink(Uri original) {
+ if (parsedPrefix.getPath().equals(original.getPath())) {
+ // Link is already rewritten to the proxy so extract the url param
+ return Uri.parse(original.getQueryParameter("url"));
+ }
+ return original;
+ }
}