Fix WebAppInitializer when sshd.listenAddress=off and host key doesn't exist
This is the same fix as 91205ae876 but for
the WebAppInitializer.
Change-Id: Ib9af4a91ea52ee6e894c6cc857a0aaaff642e9b1
This commit is contained in:
@@ -51,6 +51,8 @@ import com.google.gerrit.server.schema.DataSourceType;
|
||||
import com.google.gerrit.server.schema.DatabaseModule;
|
||||
import com.google.gerrit.server.schema.SchemaModule;
|
||||
import com.google.gerrit.server.schema.SchemaVersionCheck;
|
||||
import com.google.gerrit.server.ssh.NoSshModule;
|
||||
import com.google.gerrit.server.ssh.SshAddressesModule;
|
||||
import com.google.gerrit.solr.SolrIndexModule;
|
||||
import com.google.gerrit.sshd.SshHostKeyModule;
|
||||
import com.google.gerrit.sshd.SshKeyCacheImpl;
|
||||
@@ -143,12 +145,16 @@ public class WebAppInitializer extends GuiceServletContextListener
|
||||
|
||||
cfgInjector = createCfgInjector();
|
||||
sysInjector = createSysInjector();
|
||||
sshInjector = createSshInjector();
|
||||
if (!sshdOff()) {
|
||||
sshInjector = createSshInjector();
|
||||
}
|
||||
webInjector = createWebInjector();
|
||||
|
||||
PluginGuiceEnvironment env = sysInjector.getInstance(PluginGuiceEnvironment.class);
|
||||
env.setCfgInjector(cfgInjector);
|
||||
env.setSshInjector(sshInjector);
|
||||
if (sshInjector != null) {
|
||||
env.setSshInjector(sshInjector);
|
||||
}
|
||||
env.setHttpInjector(webInjector);
|
||||
|
||||
// Push the Provider<HttpServletRequest> down into the canonical
|
||||
@@ -169,11 +175,18 @@ public class WebAppInitializer extends GuiceServletContextListener
|
||||
manager.add(dbInjector);
|
||||
manager.add(cfgInjector);
|
||||
manager.add(sysInjector);
|
||||
manager.add(sshInjector);
|
||||
if (sshInjector != null) {
|
||||
manager.add(sshInjector);
|
||||
}
|
||||
manager.add(webInjector);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean sshdOff() {
|
||||
Config cfg = cfgInjector.getInstance(Key.get(Config.class, GerritServerConfig.class));
|
||||
return new SshAddressesModule().getListenAddresses(cfg).isEmpty();
|
||||
}
|
||||
|
||||
private Injector createDbInjector() {
|
||||
final List<Module> modules = new ArrayList<Module>();
|
||||
if (sitePath != null) {
|
||||
@@ -300,8 +313,12 @@ public class WebAppInitializer extends GuiceServletContextListener
|
||||
modules.add(RequestContextFilter.module());
|
||||
modules.add(AllRequestFilter.module());
|
||||
modules.add(sysInjector.getInstance(GitOverHttpModule.class));
|
||||
modules.add(sshInjector.getInstance(WebModule.class));
|
||||
modules.add(sshInjector.getInstance(WebSshGlueModule.class));
|
||||
modules.add(sysInjector.getInstance(WebModule.class));
|
||||
if (sshInjector != null) {
|
||||
modules.add(sshInjector.getInstance(WebSshGlueModule.class));
|
||||
} else {
|
||||
modules.add(new NoSshModule());
|
||||
}
|
||||
modules.add(CacheBasedWebSession.module());
|
||||
modules.add(HttpContactStoreConnection.module());
|
||||
modules.add(new HttpPluginModule());
|
||||
|
||||
Reference in New Issue
Block a user