Merge branch 'stable-2.14'
* stable-2.14:
Update javamelody-core to 1.67.0
Remove Buck build
Change-Id: I010fbf40d8781d8c3bd54710be73cbd6b3b60c5a
diff --git a/src/main/java/com/googlesource/gerrit/plugins/javamelody/CapabilityChecker.java b/src/main/java/com/googlesource/gerrit/plugins/javamelody/CapabilityChecker.java
index ab38db2..fc7bef2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/javamelody/CapabilityChecker.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/javamelody/CapabilityChecker.java
@@ -14,30 +14,45 @@
package com.googlesource.gerrit.plugins.javamelody;
+import com.google.common.collect.ImmutableSet;
import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.extensions.api.access.PluginPermission;
+import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.server.CurrentUser;
-import com.google.gerrit.server.account.CapabilityControl;
+import com.google.gerrit.server.permissions.GlobalPermission;
+import com.google.gerrit.server.permissions.PermissionBackend;
+import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.inject.Inject;
import com.google.inject.Provider;
+import com.google.inject.Singleton;
+@Singleton
public class CapabilityChecker {
+ private final PermissionBackend permissionBackend;
private final Provider<CurrentUser> userProvider;
- private final String capabilityName;
+ private final String pluginName;
@Inject
- CapabilityChecker(Provider<CurrentUser> userProvider,
+ CapabilityChecker(
+ PermissionBackend permissionBackend,
+ Provider<CurrentUser> userProvider,
@PluginName String pluginName) {
+ this.permissionBackend = permissionBackend;
this.userProvider = userProvider;
- this.capabilityName =
- String.format("%s-%s", pluginName, MonitoringCapability.ID);
+ this.pluginName = pluginName;
}
public boolean canMonitor() {
- if (userProvider.get().isIdentifiedUser()) {
- CapabilityControl ctl = userProvider.get().getCapabilities();
- return ctl.canAdministrateServer()
- || ctl.canPerform(capabilityName);
+ try {
+ permissionBackend
+ .user(userProvider)
+ .checkAny(
+ ImmutableSet.of(
+ GlobalPermission.ADMINISTRATE_SERVER,
+ new PluginPermission(pluginName, MonitoringCapability.ID)));
+ return true;
+ } catch (AuthException | PermissionBackendException e) {
+ return false;
}
- return false;
}
}
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 2919502..33e9a68 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/javamelody/GerritMonitoringFilter.java
@@ -17,11 +17,7 @@
import com.google.gerrit.httpd.AllRequestFilter;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-
-import net.bull.javamelody.MonitoringFilter;
-
import java.io.IOException;
-
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
@@ -29,6 +25,7 @@
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import net.bull.javamelody.MonitoringFilter;
@Singleton
class GerritMonitoringFilter extends AllRequestFilter {
@@ -36,17 +33,15 @@
private final CapabilityChecker capabilityChecker;
@Inject
- GerritMonitoringFilter(JavamelodyFilter monitoring,
- CapabilityChecker capabilityChecker) {
+ GerritMonitoringFilter(JavamelodyFilter monitoring, CapabilityChecker capabilityChecker) {
this.monitoring = monitoring;
this.capabilityChecker = capabilityChecker;
}
@Override
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain chain) throws IOException, ServletException {
- if (!(request instanceof HttpServletRequest)
- || !(response instanceof HttpServletResponse)) {
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+ throws IOException, ServletException {
+ if (!(request instanceof HttpServletRequest) || !(response instanceof HttpServletResponse)) {
chain.doFilter(request, response);
return;
}
@@ -57,8 +52,7 @@
if (canMonitor(httpRequest)) {
monitoring.doFilter(request, response, chain);
} else {
- httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN,
- "Forbidden access");
+ httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN, "Forbidden access");
}
}
@@ -73,8 +67,7 @@
}
private boolean canMonitor(HttpServletRequest httpRequest) {
- if (httpRequest.getRequestURI().equals(monitoring
- .getJavamelodyUrl(httpRequest))) {
+ if (httpRequest.getRequestURI().equals(monitoring.getJavamelodyUrl(httpRequest))) {
return capabilityChecker.canMonitor();
}
return true;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/javamelody/Module.java b/src/main/java/com/googlesource/gerrit/plugins/javamelody/Module.java
index 291fbf1..0cf8701 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/javamelody/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/javamelody/Module.java
@@ -29,19 +29,17 @@
private final PluginConfig cfg;
@Inject
- public Module(PluginConfigFactory cfgFactory,
- @PluginName String pluginName) {
+ public Module(PluginConfigFactory cfgFactory, @PluginName String pluginName) {
this.cfg = cfgFactory.getFromGerritConfig(pluginName);
}
@Override
protected void configure() {
bind(CapabilityDefinition.class)
- .annotatedWith(Exports.named(MonitoringCapability.ID))
- .to(MonitoringCapability.class);
+ .annotatedWith(Exports.named(MonitoringCapability.ID))
+ .to(MonitoringCapability.class);
if (cfg.getBoolean("allowTopMenu", true)) {
- DynamicSet.bind(binder(), TopMenu.class)
- .to(MonitoringTopMenu.class);
+ DynamicSet.bind(binder(), TopMenu.class).to(MonitoringTopMenu.class);
}
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringDataSourceInterceptor.java b/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringDataSourceInterceptor.java
index dbe8d3b..ab0edd2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringDataSourceInterceptor.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringDataSourceInterceptor.java
@@ -15,10 +15,8 @@
package com.googlesource.gerrit.plugins.javamelody;
import com.google.gerrit.extensions.persistence.DataSourceInterceptor;
-
-import net.bull.javamelody.JdbcWrapper;
-
import javax.sql.DataSource;
+import net.bull.javamelody.JdbcWrapper;
public class MonitoringDataSourceInterceptor implements DataSourceInterceptor {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringTopMenu.java b/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringTopMenu.java
index 7159404..60ebf86 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringTopMenu.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/javamelody/MonitoringTopMenu.java
@@ -18,7 +18,6 @@
import com.google.gerrit.extensions.client.MenuItem;
import com.google.gerrit.extensions.webui.TopMenu;
import com.google.inject.Inject;
-
import java.util.Collections;
import java.util.List;
@@ -28,8 +27,9 @@
@Inject
public MonitoringTopMenu(CapabilityChecker capabilityChecker) {
if (capabilityChecker.canMonitor()) {
- menuEntries.add(new MenuEntry("Monitoring", Collections
- .singletonList(new MenuItem("JavaMelody", "monitoring"))));
+ menuEntries.add(
+ new MenuEntry(
+ "Monitoring", Collections.singletonList(new MenuItem("JavaMelody", "monitoring"))));
}
}