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.DatabaseModule;
|
||||||
import com.google.gerrit.server.schema.SchemaModule;
|
import com.google.gerrit.server.schema.SchemaModule;
|
||||||
import com.google.gerrit.server.schema.SchemaVersionCheck;
|
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.solr.SolrIndexModule;
|
||||||
import com.google.gerrit.sshd.SshHostKeyModule;
|
import com.google.gerrit.sshd.SshHostKeyModule;
|
||||||
import com.google.gerrit.sshd.SshKeyCacheImpl;
|
import com.google.gerrit.sshd.SshKeyCacheImpl;
|
||||||
@@ -143,12 +145,16 @@ public class WebAppInitializer extends GuiceServletContextListener
|
|||||||
|
|
||||||
cfgInjector = createCfgInjector();
|
cfgInjector = createCfgInjector();
|
||||||
sysInjector = createSysInjector();
|
sysInjector = createSysInjector();
|
||||||
sshInjector = createSshInjector();
|
if (!sshdOff()) {
|
||||||
|
sshInjector = createSshInjector();
|
||||||
|
}
|
||||||
webInjector = createWebInjector();
|
webInjector = createWebInjector();
|
||||||
|
|
||||||
PluginGuiceEnvironment env = sysInjector.getInstance(PluginGuiceEnvironment.class);
|
PluginGuiceEnvironment env = sysInjector.getInstance(PluginGuiceEnvironment.class);
|
||||||
env.setCfgInjector(cfgInjector);
|
env.setCfgInjector(cfgInjector);
|
||||||
env.setSshInjector(sshInjector);
|
if (sshInjector != null) {
|
||||||
|
env.setSshInjector(sshInjector);
|
||||||
|
}
|
||||||
env.setHttpInjector(webInjector);
|
env.setHttpInjector(webInjector);
|
||||||
|
|
||||||
// Push the Provider<HttpServletRequest> down into the canonical
|
// Push the Provider<HttpServletRequest> down into the canonical
|
||||||
@@ -169,11 +175,18 @@ public class WebAppInitializer extends GuiceServletContextListener
|
|||||||
manager.add(dbInjector);
|
manager.add(dbInjector);
|
||||||
manager.add(cfgInjector);
|
manager.add(cfgInjector);
|
||||||
manager.add(sysInjector);
|
manager.add(sysInjector);
|
||||||
manager.add(sshInjector);
|
if (sshInjector != null) {
|
||||||
|
manager.add(sshInjector);
|
||||||
|
}
|
||||||
manager.add(webInjector);
|
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() {
|
private Injector createDbInjector() {
|
||||||
final List<Module> modules = new ArrayList<Module>();
|
final List<Module> modules = new ArrayList<Module>();
|
||||||
if (sitePath != null) {
|
if (sitePath != null) {
|
||||||
@@ -300,8 +313,12 @@ public class WebAppInitializer extends GuiceServletContextListener
|
|||||||
modules.add(RequestContextFilter.module());
|
modules.add(RequestContextFilter.module());
|
||||||
modules.add(AllRequestFilter.module());
|
modules.add(AllRequestFilter.module());
|
||||||
modules.add(sysInjector.getInstance(GitOverHttpModule.class));
|
modules.add(sysInjector.getInstance(GitOverHttpModule.class));
|
||||||
modules.add(sshInjector.getInstance(WebModule.class));
|
modules.add(sysInjector.getInstance(WebModule.class));
|
||||||
modules.add(sshInjector.getInstance(WebSshGlueModule.class));
|
if (sshInjector != null) {
|
||||||
|
modules.add(sshInjector.getInstance(WebSshGlueModule.class));
|
||||||
|
} else {
|
||||||
|
modules.add(new NoSshModule());
|
||||||
|
}
|
||||||
modules.add(CacheBasedWebSession.module());
|
modules.add(CacheBasedWebSession.module());
|
||||||
modules.add(HttpContactStoreConnection.module());
|
modules.add(HttpContactStoreConnection.module());
|
||||||
modules.add(new HttpPluginModule());
|
modules.add(new HttpPluginModule());
|
||||||
|
|||||||
Reference in New Issue
Block a user