From 4e84166db5c5538e3984d9d2d6bb1f9902e65ee0 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 04 Nov 2014 17:38:17 -0500 Subject: [PATCH] Merged #217 "Exclude SSLv3 from Gitblit GO https protocols" --- src/main/java/com/gitblit/servlet/ProxyFilter.java | 45 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/ProxyFilter.java b/src/main/java/com/gitblit/servlet/ProxyFilter.java index bfdc87f..d7f096a 100644 --- a/src/main/java/com/gitblit/servlet/ProxyFilter.java +++ b/src/main/java/com/gitblit/servlet/ProxyFilter.java @@ -16,37 +16,62 @@ package com.gitblit.servlet; import java.io.IOException; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import com.google.inject.Inject; +import com.google.inject.Singleton; +import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import com.gitblit.dagger.DaggerFilter; +import ro.fortsoft.pf4j.PluginWrapper; + import com.gitblit.extensions.HttpRequestFilter; import com.gitblit.manager.IPluginManager; - -import dagger.ObjectGraph; +import com.gitblit.manager.IRuntimeManager; /** - * A request filter than allows regsitered extension request filters to access + * A request filter than allows registered extension request filters to access * request data. The intended purpose is for server monitoring plugins. * * @author David Ostrovsky * @since 1.6.0 */ -public class ProxyFilter extends DaggerFilter { - private List<HttpRequestFilter> filters; +@Singleton +public class ProxyFilter implements Filter { + private final IRuntimeManager runtimeManager; + + private final IPluginManager pluginManager; + + private final List<HttpRequestFilter> filters; + + @Inject + public ProxyFilter( + IRuntimeManager runtimeManager, + IPluginManager pluginManager) { + + this.runtimeManager = runtimeManager; + this.pluginManager = pluginManager; + this.filters = new ArrayList<>(); + + } @Override - protected void inject(ObjectGraph dagger, FilterConfig filterConfig) throws ServletException { - IPluginManager pluginManager = dagger.get(IPluginManager.class); - filters = pluginManager.getExtensions(HttpRequestFilter.class); + public void init(FilterConfig filterConfig) throws ServletException { + + filters.addAll(pluginManager.getExtensions(HttpRequestFilter.class)); for (HttpRequestFilter f : filters) { - f.init(filterConfig); + // wrap the filter config for Gitblit settings retrieval + PluginWrapper pluginWrapper = pluginManager.whichPlugin(f.getClass()); + FilterConfig runtimeConfig = new FilterRuntimeConfig(runtimeManager, + pluginWrapper.getPluginId(), filterConfig); + + f.init(runtimeConfig); } } -- Gitblit v1.9.1