From cf5db4cdca65f1f87a1b3b7f23437e9d26917f96 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 05 May 2014 11:16:30 -0400 Subject: [PATCH] Allow filter extensions to define init parameters in IStoredSettings --- src/main/java/com/gitblit/servlet/ProxyFilter.java | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/ProxyFilter.java b/src/main/java/com/gitblit/servlet/ProxyFilter.java index bfdc87f..46f59de 100644 --- a/src/main/java/com/gitblit/servlet/ProxyFilter.java +++ b/src/main/java/com/gitblit/servlet/ProxyFilter.java @@ -25,14 +25,17 @@ import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; +import ro.fortsoft.pf4j.PluginWrapper; + import com.gitblit.dagger.DaggerFilter; import com.gitblit.extensions.HttpRequestFilter; import com.gitblit.manager.IPluginManager; +import com.gitblit.manager.IRuntimeManager; import dagger.ObjectGraph; /** - * 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 @@ -43,10 +46,17 @@ @Override protected void inject(ObjectGraph dagger, FilterConfig filterConfig) throws ServletException { + IRuntimeManager runtimeManager = dagger.get(IRuntimeManager.class); IPluginManager pluginManager = dagger.get(IPluginManager.class); + filters = 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