Class AntPathRequestMatcher

java.lang.Object
org.springframework.security.web.util.matcher.AntPathRequestMatcher
All Implemented Interfaces:
RequestMatcher, RequestVariablesExtractor

public final class AntPathRequestMatcher extends Object implements RequestMatcher, RequestVariablesExtractor
Matcher which compares a pre-defined ant-style pattern against the URL ( servletPath + pathInfo) of an HttpServletRequest. The query string of the URL is ignored and matching is case-insensitive or case-sensitive depending on the arguments passed into the constructor.

Using a pattern value of /** or ** is treated as a universal match, which will match any request. Patterns which end with /** (and have no other wildcards) are optimized by using a substring match — a pattern of /aaa/** will match /aaa, /aaa/ and any sub-directories, such as /aaa/bbb/ccc.

For all other cases, Spring's AntPathMatcher is used to perform the match. See the Spring documentation for this class for comprehensive information on the syntax used.

Since:
3.1
See Also:
  • AntPathMatcher
  • Constructor Details

    • AntPathRequestMatcher

      public AntPathRequestMatcher(String pattern)
      Creates a matcher with the specific pattern which will match all HTTP methods in a case sensitive manner.
      Parameters:
      pattern - the ant pattern to use for matching
    • AntPathRequestMatcher

      public AntPathRequestMatcher(String pattern, String httpMethod)
      Creates a matcher with the supplied pattern and HTTP method in a case sensitive manner.
      Parameters:
      pattern - the ant pattern to use for matching
      httpMethod - the HTTP method. The matches method will return false if the incoming request doesn't have the same method.
    • AntPathRequestMatcher

      public AntPathRequestMatcher(String pattern, String httpMethod, boolean caseSensitive)
      Creates a matcher with the supplied pattern which will match the specified Http method
      Parameters:
      pattern - the ant pattern to use for matching
      httpMethod - the HTTP method. The matches method will return false if the incoming request doesn't doesn't have the same method.
      caseSensitive - true if the matcher should consider case, else false
    • AntPathRequestMatcher

      public AntPathRequestMatcher(String pattern, String httpMethod, boolean caseSensitive, org.springframework.web.util.UrlPathHelper urlPathHelper)
      Creates a matcher with the supplied pattern which will match the specified Http method
      Parameters:
      pattern - the ant pattern to use for matching
      httpMethod - the HTTP method. The matches method will return false if the incoming request doesn't have the same method.
      caseSensitive - true if the matcher should consider case, else false
      urlPathHelper - if non-null, will be used for extracting the path from the HttpServletRequest
  • Method Details

    • antMatcher

      public static AntPathRequestMatcher antMatcher(String pattern)
      Creates a matcher with the specific pattern which will match all HTTP methods in a case-sensitive manner.
      Parameters:
      pattern - the ant pattern to use for matching
      Since:
      5.8
    • antMatcher

      public static AntPathRequestMatcher antMatcher(org.springframework.http.HttpMethod method)
      Creates a matcher that will match all request with the supplied HTTP method in a case-sensitive manner.
      Parameters:
      method - the HTTP method. The matches method will return false if the incoming request doesn't have the same method.
      Since:
      5.8
    • antMatcher

      public static AntPathRequestMatcher antMatcher(org.springframework.http.HttpMethod method, String pattern)
      Creates a matcher with the supplied pattern and HTTP method in a case-sensitive manner.
      Parameters:
      method - the HTTP method. The matches method will return false if the incoming request doesn't have the same method.
      pattern - the ant pattern to use for matching
      Since:
      5.8
    • matches

      public boolean matches(jakarta.servlet.http.HttpServletRequest request)
      Returns true if the configured pattern (and HTTP-Method) match those of the supplied request.
      Specified by:
      matches in interface RequestMatcher
      Parameters:
      request - the request to match against. The ant pattern will be matched against the servletPath + pathInfo of the request.
      Returns:
      true if the request matches, false otherwise
    • extractUriTemplateVariables

      @Deprecated public Map<String,String> extractUriTemplateVariables(jakarta.servlet.http.HttpServletRequest request)
      Deprecated.
      Description copied from interface: RequestVariablesExtractor
      Extract URL template variables from the request.
      Specified by:
      extractUriTemplateVariables in interface RequestVariablesExtractor
      Parameters:
      request - the HttpServletRequest to obtain a URL to extract the variables from
      Returns:
      the URL variables or empty if no variables are found
    • matcher

      public RequestMatcher.MatchResult matcher(jakarta.servlet.http.HttpServletRequest request)
      Description copied from interface: RequestMatcher
      Returns a MatchResult for this RequestMatcher The default implementation returns Collections.emptyMap() when RequestMatcher.MatchResult.getVariables() is invoked.
      Specified by:
      matcher in interface RequestMatcher
      Returns:
      the MatchResult from comparing this RequestMatcher against the HttpServletRequest
    • getPattern

      public String getPattern()
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object