summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <david.pursehouse@sonymobile.com>2015-07-06 00:33:27 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-07-06 00:33:28 +0000
commitc04812696c8ba0152d110937b786e621593e150e (patch)
tree4aa2ccaa0a87b0055c5eb5401e8f80425203557b
parent5fcb31176eeb4e15171b98574ccb83b739afe14a (diff)
parent44cf8868e3c442949c22693d45eb8d80cade217d (diff)
Merge "Fix disabling of git ssh 'download' scheme within DefaultCommandModule" into stable-2.11
-rw-r--r--gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java5
-rw-r--r--gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java28
-rw-r--r--gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java4
3 files changed, 28 insertions, 9 deletions
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
index 2b9af2f9a4..feb07e13d7 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
@@ -47,6 +47,7 @@ import com.google.gerrit.server.config.AuthConfig;
import com.google.gerrit.server.config.AuthConfigModule;
import com.google.gerrit.server.config.CanonicalWebUrlModule;
import com.google.gerrit.server.config.CanonicalWebUrlProvider;
+import com.google.gerrit.server.config.DownloadConfig;
import com.google.gerrit.server.config.GerritGlobalModule;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.MasterNodeStartup;
@@ -396,8 +397,8 @@ public class Daemon extends SiteProgram {
if (!test) {
modules.add(new SshHostKeyModule());
}
- modules.add(new DefaultCommandModule(slave));
-
+ modules.add(new DefaultCommandModule(slave,
+ sysInjector.getInstance(DownloadConfig.class)));
return sysInjector.createChildInjector(modules);
}
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java
index f75eb2b191..4347d832b9 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/DefaultCommandModule.java
@@ -14,6 +14,8 @@
package com.google.gerrit.sshd.commands;
+import com.google.gerrit.reviewdb.client.AccountGeneralPreferences.DownloadScheme;
+import com.google.gerrit.server.config.DownloadConfig;
import com.google.gerrit.sshd.CommandModule;
import com.google.gerrit.sshd.CommandName;
import com.google.gerrit.sshd.Commands;
@@ -23,8 +25,11 @@ import com.google.gerrit.sshd.SuExec;
/** Register the commands a Gerrit server supports. */
public class DefaultCommandModule extends CommandModule {
- public DefaultCommandModule(boolean slave) {
+ private final DownloadConfig downloadConfig;
+
+ public DefaultCommandModule(boolean slave, DownloadConfig downloadCfg) {
slaveMode = slave;
+ downloadConfig = downloadCfg;
}
@Override
@@ -68,8 +73,10 @@ public class DefaultCommandModule extends CommandModule {
command("scp").to(ScpCommand.class);
// Honor the legacy hyphenated forms as aliases for the non-hyphenated forms
- command("git-upload-pack").to(Commands.key(git, "upload-pack"));
- command(git, "upload-pack").to(Upload.class);
+ if (sshEnabled()) {
+ command("git-upload-pack").to(Commands.key(git, "upload-pack"));
+ command(git, "upload-pack").to(Upload.class);
+ }
command("suexec").to(SuExec.class);
listener().to(ShowCaches.StartupListener.class);
@@ -78,10 +85,13 @@ public class DefaultCommandModule extends CommandModule {
command(gerrit, CreateGroupCommand.class);
command(gerrit, CreateProjectCommand.class);
command(gerrit, AdminQueryShell.class);
+
if (!slaveMode) {
- command("git-receive-pack").to(Commands.key(git, "receive-pack"));
- command("gerrit-receive-pack").to(Commands.key(git, "receive-pack"));
- command(git, "receive-pack").to(Commands.key(gerrit, "receive-pack"));
+ if (sshEnabled()) {
+ command("git-receive-pack").to(Commands.key(git, "receive-pack"));
+ command("gerrit-receive-pack").to(Commands.key(git, "receive-pack"));
+ command(git, "receive-pack").to(Commands.key(gerrit, "receive-pack"));
+ }
command(gerrit, "test-submit").toProvider(
new DispatchCommandProvider(testSubmit));
}
@@ -107,4 +117,10 @@ public class DefaultCommandModule extends CommandModule {
alias(logging, "ls", ListLoggingLevelCommand.class);
alias(logging, "set", SetLoggingLevelCommand.class);
}
+
+ private boolean sshEnabled() {
+ return downloadConfig.getDownloadSchemes().contains(DownloadScheme.SSH)
+ || downloadConfig.getDownloadSchemes().contains(
+ DownloadScheme.DEFAULT_DOWNLOADS);
+ }
}
diff --git a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java
index b365e76ff6..addac98c48 100644
--- a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java
+++ b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java
@@ -31,6 +31,7 @@ import com.google.gerrit.server.cache.h2.DefaultCacheFactory;
import com.google.gerrit.server.config.AuthConfig;
import com.google.gerrit.server.config.AuthConfigModule;
import com.google.gerrit.server.config.CanonicalWebUrlModule;
+import com.google.gerrit.server.config.DownloadConfig;
import com.google.gerrit.server.config.GerritGlobalModule;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.GerritServerConfigModule;
@@ -329,7 +330,8 @@ public class WebAppInitializer extends GuiceServletContextListener
final List<Module> modules = new ArrayList<>();
modules.add(sysInjector.getInstance(SshModule.class));
modules.add(new SshHostKeyModule());
- modules.add(new DefaultCommandModule(false));
+ modules.add(new DefaultCommandModule(false,
+ sysInjector.getInstance(DownloadConfig.class)));
return sysInjector.createChildInjector(modules);
}