Fixing URL rewrite for projects in MyDashboard page.
The GitBlit MyDashboard page contained broken links
on the project panel, because of the incorrect rewriting
of the URLs to the /static folder.
This fix includes an ignore list that excludes
summary/ and project/ from the URL rewriting: project
URLs are then correct and working.
Change-Id: I8baddf2cb033669fe70734c3b9c99b8c3232136b
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java
index d291279..419487c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/GerritToGitBlitWebApp.java
@@ -24,7 +24,7 @@
protected IRequestCycleProcessor newRequestCycleProcessor() {
return new WebRequestCycleProcessor() {
protected IRequestCodingStrategy newRequestCodingStrategy() {
- return new StaticCodingStrategy();
+ return new StaticCodingStrategy("summary/", "project/");
}
};
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java
index 5dd9e5f..f196e27 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitblit/app/StaticCodingStrategy.java
@@ -17,8 +17,17 @@
import org.apache.wicket.RequestCycle;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class StaticCodingStrategy extends WebRequestCodingStrategy {
+ private static final Logger LOG = LoggerFactory
+ .getLogger(StaticCodingStrategy.class);
+ private String[] ignoreResourceUrlPrefixes;
+
+ public StaticCodingStrategy(String... ignoreResourceUrlPrefixes) {
+ this.ignoreResourceUrlPrefixes = ignoreResourceUrlPrefixes;
+ }
@Override
public String rewriteStaticRelativeUrl(String url) {
@@ -28,12 +37,25 @@
return url;
}
+ if(isMatchingIgnoreUrlPrefixes(url)) {
+ return url;
+ }
+
int depth =
((ServletWebRequest) RequestCycle.get().getRequest())
.getDepthRelativeToWicketHandler();
return getRelativeStaticUrl(url, depth);
}
+ private boolean isMatchingIgnoreUrlPrefixes(String url) {
+ for (String ignoredUrlPrefix : ignoreResourceUrlPrefixes) {
+ if(url.startsWith(ignoredUrlPrefix)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public static String getRelativePrefix(Request request) {
int depth = ((ServletWebRequest) request).getDepthRelativeToWicketHandler();
@@ -60,6 +82,8 @@
// file
urlBuffer.append(url);
+ LOG.debug("Rewriting URL " + url + " to " + urlBuffer);
+
return urlBuffer.toString();
}
}