mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-07-06 23:10:01 +02:00
make use of new WebElement and Priority annotation
This commit is contained in:
@@ -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 ---------------------------------------------------------
|
||||
|
||||
/**
|
||||
|
||||
90
scm-core/src/main/java/sonia/scm/filter/Filters.java
Normal file
90
scm-core/src/main/java/sonia/scm/filter/Filters.java
Normal file
@@ -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() {}
|
||||
}
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
@@ -349,6 +349,7 @@ public class BufferedHttpServletResponse extends HttpServletResponseWrapper
|
||||
* @param sm
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setStatus(int sc, String sm)
|
||||
{
|
||||
this.statusCode = sc;
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user