Merge "Allow access using Basic Authentication prefix" into stable-2.14
diff --git a/src/main/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilter.java b/src/main/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilter.java
index 0afe8fd..488fe94 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilter.java
@@ -38,6 +38,7 @@
 import net.bull.javamelody.MonitoringFilter;
 import net.bull.javamelody.Parameter;
 import net.bull.javamelody.internal.common.HttpParameter;
+import net.bull.javamelody.internal.common.Parameters;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -109,6 +110,7 @@
 
     private final PluginConfig cfg;
     private final Path defaultDataDir;
+    private String authenticatedMonitoringUrl;
 
     @Inject
     JavamelodyFilter(
@@ -141,6 +143,20 @@
       return getMonitoringUrl(httpRequest);
     }
 
+    @Override
+    protected String getMonitoringUrl(HttpServletRequest httpRequest) {
+      if (authenticatedMonitoringUrl == null) {
+        authenticatedMonitoringUrl =
+            httpRequest.getContextPath() + "/a" + Parameters.getMonitoringPath();
+      }
+
+      if (httpRequest.getRequestURI().equals(authenticatedMonitoringUrl)) {
+        return authenticatedMonitoringUrl;
+      }
+
+      return super.getMonitoringUrl(httpRequest);
+    }
+
     private String getTransformPattern() {
       return cfg.getString(HTTP_TRANSFORM_PATTERN, GERRIT_GROUPING);
     }