Hoist RequireSslFilter out of WebModule
On googlesource.com we have a separate filter for this, and having two of them causes problems. Change-Id: If04b61be38eed67fa8edd5cbd164f4b97ea1e6e2
This commit is contained in:
		| @@ -34,11 +34,20 @@ import javax.servlet.http.HttpServletResponse; | ||||
|  | ||||
| /** Requires the connection to use SSL, redirects if not. */ | ||||
| @Singleton | ||||
| class RequireSslFilter implements Filter { | ||||
|   static class Module extends ServletModule { | ||||
| public class RequireSslFilter implements Filter { | ||||
|   public static class Module extends ServletModule { | ||||
|     private final boolean wantSsl; | ||||
|  | ||||
|     @Inject | ||||
|     Module(@Nullable @CanonicalWebUrl String canonicalUrl) { | ||||
|       this.wantSsl = canonicalUrl != null && canonicalUrl.startsWith("https:"); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void configureServlets() { | ||||
|       filter("/*").through(RequireSslFilter.class); | ||||
|       if (wantSsl) { | ||||
|         filter("/*").through(RequireSslFilter.class); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -16,7 +16,6 @@ package com.google.gerrit.httpd; | ||||
|  | ||||
| import static com.google.gerrit.extensions.registration.PrivateInternals_DynamicTypes.registerInParentInjectors; | ||||
|  | ||||
| import com.google.gerrit.common.Nullable; | ||||
| import com.google.gerrit.extensions.registration.DynamicSet; | ||||
| import com.google.gerrit.extensions.webui.WebUiPlugin; | ||||
| import com.google.gerrit.httpd.auth.become.BecomeAnyAccountModule; | ||||
| @@ -28,7 +27,6 @@ import com.google.gerrit.httpd.rpc.UiRpcModule; | ||||
| import com.google.gerrit.lifecycle.LifecycleModule; | ||||
| import com.google.gerrit.server.RemotePeer; | ||||
| import com.google.gerrit.server.config.AuthConfig; | ||||
| import com.google.gerrit.server.config.CanonicalWebUrl; | ||||
| import com.google.gerrit.server.config.GerritRequestModule; | ||||
| import com.google.gerrit.server.config.GitwebCgiConfig; | ||||
| import com.google.gerrit.server.git.AsyncReceiveCommits; | ||||
| @@ -42,17 +40,14 @@ import java.net.SocketAddress; | ||||
|  | ||||
| public class WebModule extends LifecycleModule { | ||||
|   private final AuthConfig authConfig; | ||||
|   private final boolean wantSSL; | ||||
|   private final GitwebCgiConfig gitwebCgiConfig; | ||||
|   private final GerritOptions options; | ||||
|  | ||||
|   @Inject | ||||
|   WebModule(AuthConfig authConfig, | ||||
|       @CanonicalWebUrl @Nullable String canonicalUrl, | ||||
|       GerritOptions options, | ||||
|       GitwebCgiConfig gitwebCgiConfig) { | ||||
|     this.authConfig = authConfig; | ||||
|     this.wantSSL = canonicalUrl != null && canonicalUrl.startsWith("https:"); | ||||
|     this.options = options; | ||||
|     this.gitwebCgiConfig = gitwebCgiConfig; | ||||
|   } | ||||
| @@ -62,9 +57,6 @@ public class WebModule extends LifecycleModule { | ||||
|     bind(RequestScopePropagator.class).to(GuiceRequestScopePropagator.class); | ||||
|     bind(HttpRequestContext.class); | ||||
|  | ||||
|     if (wantSSL) { | ||||
|       install(new RequireSslFilter.Module()); | ||||
|     } | ||||
|     install(new RunAsFilter.Module()); | ||||
|  | ||||
|     installAuthModule(); | ||||
|   | ||||
| @@ -28,6 +28,7 @@ import com.google.gerrit.httpd.GitOverHttpModule; | ||||
| import com.google.gerrit.httpd.H2CacheBasedWebSession; | ||||
| import com.google.gerrit.httpd.HttpCanonicalWebUrlProvider; | ||||
| import com.google.gerrit.httpd.RequestContextFilter; | ||||
| import com.google.gerrit.httpd.RequireSslFilter; | ||||
| import com.google.gerrit.httpd.WebModule; | ||||
| import com.google.gerrit.httpd.WebSshGlueModule; | ||||
| import com.google.gerrit.httpd.auth.oauth.OAuthModule; | ||||
| @@ -445,6 +446,7 @@ public class Daemon extends SiteProgram { | ||||
|     modules.add(H2CacheBasedWebSession.module()); | ||||
|     modules.add(sysInjector.getInstance(GitOverHttpModule.class)); | ||||
|     modules.add(sysInjector.getInstance(WebModule.class)); | ||||
|     modules.add(sysInjector.getInstance(RequireSslFilter.Module.class)); | ||||
|     modules.add(new HttpPluginModule()); | ||||
|     if (sshd) { | ||||
|       modules.add(sshInjector.getInstance(WebSshGlueModule.class)); | ||||
|   | ||||
| @@ -349,6 +349,7 @@ public class WebAppInitializer extends GuiceServletContextListener | ||||
|     modules.add(AllRequestFilter.module()); | ||||
|     modules.add(sysInjector.getInstance(GitOverHttpModule.class)); | ||||
|     modules.add(sysInjector.getInstance(WebModule.class)); | ||||
|     modules.add(sysInjector.getInstance(RequireSslFilter.Module.class)); | ||||
|     if (sshInjector != null) { | ||||
|       modules.add(sshInjector.getInstance(WebSshGlueModule.class)); | ||||
|     } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Dave Borowitz
					Dave Borowitz