From 1501a6774ebcb427c50e740f2c4b36f4b8967782 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 28 Oct 2014 09:55:10 -0400
Subject: [PATCH] Merge release 1.6.2
---
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