From 30b49490a7771e5132cba0b7a6941c04ac048027 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 1 Feb 2015 19:52:53 +0100 Subject: [PATCH] make use of new WebElement and Priority annotation --- .../src/main/java/sonia/scm/Priorities.java | 27 ------ .../main/java/sonia/scm/filter/Filters.java | 90 +++++++++++++++++++ .../java/sonia/scm/filter/GZipFilter.java | 10 +-- .../filter/BufferedHttpServletResponse.java | 1 + .../test/java/sonia/scm/PrioritiesTest.java | 18 +++- .../scm/web/GitBasicAuthenticationFilter.java | 6 +- .../sonia/scm/web/GitPermissionFilter.java | 6 +- .../java/sonia/scm/web/GitServletModule.java | 2 - .../scm/web/HgBasicAuthenticationFilter.java | 7 +- .../sonia/scm/web/HgPermissionFilter.java | 7 +- .../java/sonia/scm/web/HgServletModule.java | 2 - .../scm/web/SvnBasicAuthenticationFilter.java | 7 +- .../sonia/scm/web/SvnPermissionFilter.java | 7 +- .../main/java/sonia/scm/ScmServletModule.java | 22 ----- .../sonia/scm/filter/AdminSecurityFilter.java | 7 +- .../java/sonia/scm/filter/BaseUrlFilter.java | 9 +- .../main/java/sonia/scm/filter/MDCFilter.java | 4 +- .../java/sonia/scm/filter/SecurityFilter.java | 8 +- .../ApiBasicAuthenticationFilter.java | 6 +- 19 files changed, 161 insertions(+), 85 deletions(-) create mode 100644 scm-core/src/main/java/sonia/scm/filter/Filters.java diff --git a/scm-core/src/main/java/sonia/scm/Priorities.java b/scm-core/src/main/java/sonia/scm/Priorities.java index d863d12312..d2eb6062e0 100644 --- a/scm-core/src/main/java/sonia/scm/Priorities.java +++ b/scm-core/src/main/java/sonia/scm/Priorities.java @@ -50,36 +50,9 @@ import java.util.List; public final class Priorities { - /** authentication priority */ - public static final int AUTHENTICATION = 5000; - - /** authorization priority */ - public static final int AUTHORIZATION = 6000; - - /** base url priority */ - public static final int BASEURL = 1000; - /** default priority */ public static final int DEFAULT = 9999; - /** post authentication priority */ - public static final int POST_AUTHENTICATION = 5500; - - /** pre authorization priority */ - public static final int POST_AUTHORIZATION = 6500; - - /** post base url priority */ - public static final int POST_BASEURL = 1500; - - /** pre authentication priority */ - public static final int PRE_AUTHENTICATION = 4500; - - /** pre authorization priority */ - public static final int PRE_AUTHORIZATION = 5500; - - /** pre base url priority */ - public static final int PRE_BASEURL = 500; - //~--- constructors --------------------------------------------------------- /** diff --git a/scm-core/src/main/java/sonia/scm/filter/Filters.java b/scm-core/src/main/java/sonia/scm/filter/Filters.java new file mode 100644 index 0000000000..1c403440c6 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/filter/Filters.java @@ -0,0 +1,90 @@ +/** + * Copyright (c) 2014, Sebastian Sdorra All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. 2. Redistributions in + * binary form must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. 3. Neither the name of SCM-Manager; + * nor the names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://bitbucket.org/sdorra/scm-manager + * + */ + + + +package sonia.scm.filter; + +/** + * Useful constants for filter implementations. + * + * @since 2.0.0 + * @author Sebastian Sdorra + */ +public final class Filters +{ + + /** Field description */ + public static final String PATTERN_ALL = "/*"; + + /** Field description */ + public static final String PATTERN_DEBUG = "/debug.html"; + + /** Field description */ + public static final String PATTERN_RESOURCE_REGEX = + "^/(?:resources|api|plugins|index)[\\./].*(?:html|\\.css|\\.js|\\.xml|\\.json|\\.txt)"; + + /** Field description */ + public static final String PATTERN_RESTAPI = "/api/rest/*"; + + /** authentication priority */ + public static final int PRIORITY_AUTHENTICATION = 5000; + + /** authorization priority */ + public static final int PRIORITY_AUTHORIZATION = 6000; + + /** base url priority */ + public static final int PRIORITY_BASEURL = 1000; + + /** post authentication priority */ + public static final int PRIORITY_POST_AUTHENTICATION = 5500; + + /** pre authorization priority */ + public static final int PRIORITY_POST_AUTHORIZATION = 6500; + + /** post base url priority */ + public static final int PRIORITY_POST_BASEURL = 1500; + + /** pre authentication priority */ + public static final int PRIORITY_PRE_AUTHENTICATION = 4500; + + /** pre authorization priority */ + public static final int PRIORITY_PRE_AUTHORIZATION = 5500; + + /** pre base url priority */ + public static final int PRIORITY_PRE_BASEURL = 500; + + //~--- constructors --------------------------------------------------------- + + /** + * Constructs ... + * + */ + private Filters() {} +} diff --git a/scm-core/src/main/java/sonia/scm/filter/GZipFilter.java b/scm-core/src/main/java/sonia/scm/filter/GZipFilter.java index 8e5c07e1c8..49fa8ebebf 100644 --- a/scm-core/src/main/java/sonia/scm/filter/GZipFilter.java +++ b/scm-core/src/main/java/sonia/scm/filter/GZipFilter.java @@ -35,11 +35,10 @@ package sonia.scm.filter; //~--- non-JDK imports -------------------------------------------------------- -import com.google.inject.Singleton; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import sonia.scm.Priority; import sonia.scm.util.WebUtil; import sonia.scm.web.filter.HttpFilter; @@ -58,7 +57,8 @@ import javax.servlet.http.HttpServletResponse; * @author Sebastian Sdorra * @since 1.15 */ -@Singleton +@Priority(Filters.PRIORITY_PRE_BASEURL) +@WebElement(value = Filters.PATTERN_RESOURCE_REGEX, regex = true) public class GZipFilter extends HttpFilter { @@ -96,8 +96,8 @@ public class GZipFilter extends HttpFilter */ @Override protected void doFilter(HttpServletRequest request, - HttpServletResponse response, FilterChain chain) - throws IOException, ServletException + HttpServletResponse response, FilterChain chain) + throws IOException, ServletException { if (WebUtil.isGzipSupported(request)) { diff --git a/scm-core/src/main/java/sonia/scm/web/filter/BufferedHttpServletResponse.java b/scm-core/src/main/java/sonia/scm/web/filter/BufferedHttpServletResponse.java index 3f7531e3f4..b91f2b62c9 100644 --- a/scm-core/src/main/java/sonia/scm/web/filter/BufferedHttpServletResponse.java +++ b/scm-core/src/main/java/sonia/scm/web/filter/BufferedHttpServletResponse.java @@ -349,6 +349,7 @@ public class BufferedHttpServletResponse extends HttpServletResponseWrapper * @param sm */ @Override + @SuppressWarnings("deprecation") public void setStatus(int sc, String sm) { this.statusCode = sc; diff --git a/scm-core/src/test/java/sonia/scm/PrioritiesTest.java b/scm-core/src/test/java/sonia/scm/PrioritiesTest.java index 09be1b0980..db284a28a3 100644 --- a/scm-core/src/test/java/sonia/scm/PrioritiesTest.java +++ b/scm-core/src/test/java/sonia/scm/PrioritiesTest.java @@ -54,6 +54,16 @@ import java.util.List; public class PrioritiesTest { + /** authentication priority */ + public static final int AUTHENTICATION = 5000; + + /** post authentication priority */ + public static final int POST_AUTHENTICATION = 5500; + + /** pre authentication priority */ + public static final int PRE_AUTHENTICATION = 4500; + + /** * Constructs ... * @@ -69,7 +79,7 @@ public class PrioritiesTest @Test public void testGetPriority() { - assertEquals(Priorities.POST_AUTHENTICATION, + assertEquals(POST_AUTHENTICATION, Priorities.getPriority(A.class)); assertEquals(Priorities.DEFAULT, Priorities.getPriority(D.class)); } @@ -97,7 +107,7 @@ public class PrioritiesTest * @version Enter version here..., 14/12/20 * @author Enter your name here... */ - @Priority(Priorities.POST_AUTHENTICATION) + @Priority(POST_AUTHENTICATION) public static class A {} @@ -108,7 +118,7 @@ public class PrioritiesTest * @version Enter version here..., 14/12/20 * @author Enter your name here... */ - @Priority(Priorities.PRE_AUTHENTICATION) + @Priority(PRE_AUTHENTICATION) public static class B {} @@ -119,7 +129,7 @@ public class PrioritiesTest * @version Enter version here..., 14/12/20 * @author Enter your name here... */ - @Priority(Priorities.AUTHENTICATION) + @Priority(AUTHENTICATION) public static class C {} diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitBasicAuthenticationFilter.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitBasicAuthenticationFilter.java index 35047fe1f6..7e12b732f1 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitBasicAuthenticationFilter.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitBasicAuthenticationFilter.java @@ -39,7 +39,10 @@ import com.google.inject.Singleton; import org.eclipse.jgit.http.server.GitSmartHttpTools; import sonia.scm.ClientMessages; +import sonia.scm.Priority; import sonia.scm.config.ScmConfiguration; +import sonia.scm.filter.Filters; +import sonia.scm.filter.WebElement; import sonia.scm.repository.GitUtil; import sonia.scm.web.filter.AutoLoginModule; import sonia.scm.web.filter.BasicAuthenticationFilter; @@ -57,7 +60,8 @@ import javax.servlet.http.HttpServletResponse; * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHENTICATION) +@WebElement(value = GitServletModule.PATTERN_GIT) public class GitBasicAuthenticationFilter extends BasicAuthenticationFilter { diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitPermissionFilter.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitPermissionFilter.java index f682c355a6..a25dc05ddd 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitPermissionFilter.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitPermissionFilter.java @@ -52,12 +52,16 @@ import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import sonia.scm.Priority; +import sonia.scm.filter.Filters; +import sonia.scm.filter.WebElement; /** * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHORIZATION) +@WebElement(value = GitServletModule.PATTERN_GIT) public class GitPermissionFilter extends ProviderPermissionFilter { diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitServletModule.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitServletModule.java index 3dbc9fc586..2507db150a 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitServletModule.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitServletModule.java @@ -67,8 +67,6 @@ public class GitServletModule extends ServletModule bind(ScmTransportProtocol.class); // serlvelts and filters - filter(PATTERN_GIT).through(GitBasicAuthenticationFilter.class); - filter(PATTERN_GIT).through(GitPermissionFilter.class); serve(PATTERN_GIT).with(ScmGitServlet.class); } } diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgBasicAuthenticationFilter.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgBasicAuthenticationFilter.java index 6d3c819e13..946d304590 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgBasicAuthenticationFilter.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgBasicAuthenticationFilter.java @@ -34,9 +34,11 @@ package sonia.scm.web; //~--- non-JDK imports -------------------------------------------------------- import com.google.inject.Inject; -import com.google.inject.Singleton; +import sonia.scm.Priority; import sonia.scm.config.ScmConfiguration; +import sonia.scm.filter.Filters; +import sonia.scm.filter.WebElement; import sonia.scm.web.filter.AutoLoginModule; import sonia.scm.web.filter.BasicAuthenticationFilter; @@ -53,7 +55,8 @@ import javax.servlet.http.HttpServletResponse; * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHENTICATION) +@WebElement(value = HgServletModule.MAPPING_HG) public class HgBasicAuthenticationFilter extends BasicAuthenticationFilter { diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgPermissionFilter.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgPermissionFilter.java index 0a9d3e43b9..9f753d2993 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgPermissionFilter.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgPermissionFilter.java @@ -36,9 +36,11 @@ package sonia.scm.web; //~--- non-JDK imports -------------------------------------------------------- import com.google.inject.Inject; -import com.google.inject.Singleton; +import sonia.scm.Priority; import sonia.scm.config.ScmConfiguration; +import sonia.scm.filter.Filters; +import sonia.scm.filter.WebElement; import sonia.scm.repository.RepositoryProvider; import sonia.scm.web.filter.ProviderPermissionFilter; @@ -50,7 +52,8 @@ import javax.servlet.http.HttpServletRequest; * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHORIZATION) +@WebElement(value = HgServletModule.MAPPING_HG) public class HgPermissionFilter extends ProviderPermissionFilter { diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgServletModule.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgServletModule.java index f595c2e8b7..71d6f9f419 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgServletModule.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgServletModule.java @@ -74,8 +74,6 @@ public class HgServletModule extends ServletModule serve(MAPPING_HOOK).with(HgHookCallbackServlet.class); // register hg cgi servlet - filter(MAPPING_HG).through(HgBasicAuthenticationFilter.class); - filter(MAPPING_HG).through(HgPermissionFilter.class); serve(MAPPING_HG).with(HgCGIServlet.class); } } diff --git a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnBasicAuthenticationFilter.java b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnBasicAuthenticationFilter.java index b94b6b5d56..d21ea90776 100644 --- a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnBasicAuthenticationFilter.java +++ b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnBasicAuthenticationFilter.java @@ -34,9 +34,11 @@ package sonia.scm.web; //~--- non-JDK imports -------------------------------------------------------- import com.google.inject.Inject; -import com.google.inject.Singleton; +import sonia.scm.Priority; import sonia.scm.config.ScmConfiguration; +import sonia.scm.filter.Filters; +import sonia.scm.filter.WebElement; import sonia.scm.repository.SvnUtil; import sonia.scm.util.HttpUtil; import sonia.scm.web.filter.AutoLoginModule; @@ -55,7 +57,8 @@ import javax.servlet.http.HttpServletResponse; * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHENTICATION) +@WebElement(value = SvnServletModule.PATTERN_SVN) public class SvnBasicAuthenticationFilter extends BasicAuthenticationFilter { diff --git a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnPermissionFilter.java b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnPermissionFilter.java index bcaf854118..30ef3e94c0 100644 --- a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnPermissionFilter.java +++ b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnPermissionFilter.java @@ -37,10 +37,12 @@ package sonia.scm.web; import com.google.common.collect.ImmutableSet; import com.google.inject.Inject; -import com.google.inject.Singleton; import sonia.scm.ClientMessages; +import sonia.scm.Priority; import sonia.scm.config.ScmConfiguration; +import sonia.scm.filter.Filters; +import sonia.scm.filter.WebElement; import sonia.scm.repository.RepositoryProvider; import sonia.scm.repository.ScmSvnErrorCode; import sonia.scm.repository.SvnUtil; @@ -59,7 +61,8 @@ import javax.servlet.http.HttpServletResponse; * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHORIZATION) +@WebElement(value = SvnServletModule.PATTERN_SVN) public class SvnPermissionFilter extends ProviderPermissionFilter { diff --git a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java index 885c3f3e1e..af4f83052c 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java @@ -52,11 +52,6 @@ import sonia.scm.cache.CacheManager; import sonia.scm.cache.GuavaCacheManager; import sonia.scm.config.ScmConfiguration; import sonia.scm.event.ScmEventBus; -import sonia.scm.filter.AdminSecurityFilter; -import sonia.scm.filter.BaseUrlFilter; -import sonia.scm.filter.GZipFilter; -import sonia.scm.filter.MDCFilter; -import sonia.scm.filter.SecurityFilter; import sonia.scm.group.DefaultGroupManager; import sonia.scm.group.GroupDAO; import sonia.scm.group.GroupManager; @@ -119,10 +114,8 @@ import sonia.scm.util.DebugServlet; import sonia.scm.util.ScmConfigurationUtil; import sonia.scm.web.cgi.CGIExecutorFactory; import sonia.scm.web.cgi.DefaultCGIExecutorFactory; -import sonia.scm.web.filter.AutoLoginFilter; import sonia.scm.web.filter.LoggingFilter; import sonia.scm.web.security.AdministrationContext; -import sonia.scm.web.security.ApiBasicAuthenticationFilter; import sonia.scm.web.security.DefaultAdministrationContext; //~--- JDK imports ------------------------------------------------------------ @@ -329,21 +322,6 @@ public class ScmServletModule extends JerseyServletModule filter(PATTERN_ALL).through(LoggingFilter.class); } - /* - * filter(PATTERN_PAGE, - * PATTERN_STATIC_RESOURCES).through(StaticResourceFilter.class); - */ - filter(PATTERN_ALL).through(BaseUrlFilter.class); - filter(PATTERN_ALL).through(AutoLoginFilter.class); - filterRegex(RESOURCE_REGEX).through(GZipFilter.class); - filter(PATTERN_RESTAPI, - PATTERN_DEBUG).through(ApiBasicAuthenticationFilter.class); - filter(PATTERN_RESTAPI, PATTERN_DEBUG).through(SecurityFilter.class); - filter(PATTERN_CONFIG, PATTERN_ADMIN).through(AdminSecurityFilter.class); - - // added mdcs for logging - filter(PATTERN_ALL).through(MDCFilter.class); - // debug servlet serve(PATTERN_DEBUG).with(DebugServlet.class); diff --git a/scm-webapp/src/main/java/sonia/scm/filter/AdminSecurityFilter.java b/scm-webapp/src/main/java/sonia/scm/filter/AdminSecurityFilter.java index a458138910..e118a35be9 100644 --- a/scm-webapp/src/main/java/sonia/scm/filter/AdminSecurityFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/filter/AdminSecurityFilter.java @@ -36,9 +36,9 @@ package sonia.scm.filter; //~--- non-JDK imports -------------------------------------------------------- import com.google.inject.Inject; -import com.google.inject.Singleton; import org.apache.shiro.subject.Subject; +import sonia.scm.Priority; import sonia.scm.config.ScmConfiguration; import sonia.scm.security.Role; @@ -47,7 +47,8 @@ import sonia.scm.security.Role; * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHORIZATION + 1) +@WebElement(value = Filters.PATTERN_RESTAPI, morePatterns = {Filters.PATTERN_DEBUG}) public class AdminSecurityFilter extends SecurityFilter { @@ -69,8 +70,6 @@ public class AdminSecurityFilter extends SecurityFilter * Method description * * - * @param securityContext - * * @param subject * * @return diff --git a/scm-webapp/src/main/java/sonia/scm/filter/BaseUrlFilter.java b/scm-webapp/src/main/java/sonia/scm/filter/BaseUrlFilter.java index f2397bbcc2..935f9961b6 100644 --- a/scm-webapp/src/main/java/sonia/scm/filter/BaseUrlFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/filter/BaseUrlFilter.java @@ -37,7 +37,6 @@ package sonia.scm.filter; import com.google.common.annotations.VisibleForTesting; import com.google.inject.Inject; -import com.google.inject.Singleton; import sonia.scm.config.ScmConfiguration; import sonia.scm.util.HttpUtil; @@ -52,12 +51,14 @@ import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import sonia.scm.Priority; /** * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_BASEURL) +@WebElement(Filters.PATTERN_ALL) public class BaseUrlFilter extends HttpFilter { @@ -162,6 +163,6 @@ public class BaseUrlFilter extends HttpFilter //~--- fields --------------------------------------------------------------- - /** Field description */ - private ScmConfiguration configuration; + /** scm configuration */ + private final ScmConfiguration configuration; } diff --git a/scm-webapp/src/main/java/sonia/scm/filter/MDCFilter.java b/scm-webapp/src/main/java/sonia/scm/filter/MDCFilter.java index 6630543bc3..8445a29f54 100644 --- a/scm-webapp/src/main/java/sonia/scm/filter/MDCFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/filter/MDCFilter.java @@ -51,12 +51,14 @@ import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import sonia.scm.Priority; /** * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_POST_AUTHENTICATION) +@WebElement(Filters.PATTERN_ALL) public class MDCFilter extends HttpFilter { diff --git a/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java b/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java index b469a6b89a..a2e80d8beb 100644 --- a/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/filter/SecurityFilter.java @@ -55,12 +55,14 @@ import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import sonia.scm.Priority; /** * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHORIZATION) +@WebElement(value = Filters.PATTERN_RESTAPI, morePatterns = {Filters.PATTERN_DEBUG}) public class SecurityFilter extends HttpFilter { @@ -171,6 +173,6 @@ public class SecurityFilter extends HttpFilter //~--- fields --------------------------------------------------------------- - /** Field description */ - private ScmConfiguration configuration; + /** scm configuration */ + private final ScmConfiguration configuration; } diff --git a/scm-webapp/src/main/java/sonia/scm/web/security/ApiBasicAuthenticationFilter.java b/scm-webapp/src/main/java/sonia/scm/web/security/ApiBasicAuthenticationFilter.java index 29285b68eb..ce8b3df2d2 100644 --- a/scm-webapp/src/main/java/sonia/scm/web/security/ApiBasicAuthenticationFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/web/security/ApiBasicAuthenticationFilter.java @@ -52,12 +52,16 @@ import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import sonia.scm.Priority; +import sonia.scm.filter.Filters; +import sonia.scm.filter.WebElement; /** * * @author Sebastian Sdorra */ -@Singleton +@Priority(Filters.PRIORITY_AUTHENTICATION) +@WebElement(value = Filters.PATTERN_RESTAPI, morePatterns = {Filters.PATTERN_DEBUG}) public class ApiBasicAuthenticationFilter extends BasicAuthenticationFilter {