Merge "Do not return 403 when clicking on Gitweb breadcrumb" into stable-2.10
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
index f593caca..8f0a202 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
@@ -29,6 +29,7 @@
package com.google.gerrit.httpd.gitweb;
+import com.google.gerrit.common.PageLinks;
import com.google.gerrit.common.data.GerritConfig;
import com.google.gerrit.extensions.restapi.Url;
import com.google.gerrit.httpd.GitWebConfig;
@@ -79,6 +80,8 @@
private static final Logger log =
LoggerFactory.getLogger(GitWebServlet.class);
+ private static final String PROJECT_LIST_ACTION = "project_list";
+
private final Set<String> deniedActions;
private final int bufferSize = 8192;
private final File gitwebCgi;
@@ -119,7 +122,6 @@
deniedActions.add("forks");
deniedActions.add("opml");
- deniedActions.add("project_list");
deniedActions.add("project_index");
_env = new EnvList();
@@ -363,6 +365,12 @@
return;
}
+ if (params.get("a").equals(PROJECT_LIST_ACTION)) {
+ rsp.sendRedirect(req.getContextPath() + "/#" + PageLinks.ADMIN_PROJECTS
+ + "?filter=" + Url.encode(params.get("pf") + "/"));
+ return;
+ }
+
String name = params.get("p");
if (name == null) {
rsp.sendError(HttpServletResponse.SC_NOT_FOUND);