Package org.springframework.security.web.util.matcher

# 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`

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.springframework.security.web.util.matcher.RequestMatcher

`RequestMatcher.MatchResult`

## Constructor Summary

Constructors
Constructor
Description
`AntPathRequestMatcher(String pattern)`
Creates a matcher with the specific pattern which will match all HTTP methods in a case sensitive manner.
`AntPathRequestMatcher(String pattern, String httpMethod)`
Creates a matcher with the supplied pattern and HTTP method in a case sensitive manner.
`AntPathRequestMatcher(String pattern, String httpMethod, boolean caseSensitive)`
Creates a matcher with the supplied pattern which will match the specified Http method
`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

## Method Summary

Modifier and Type
Method
Description
`static AntPathRequestMatcher`
`antMatcher(String pattern)`
Creates a matcher with the specific pattern which will match all HTTP methods in a case-sensitive manner.
`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.
`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.
`boolean`
`equals(Object obj)`
`Map<String,String>`
`extractUriTemplateVariables(jakarta.servlet.http.HttpServletRequest request)`
Deprecated.
`String`
`getPattern()`
`int`
`hashCode()`
`RequestMatcher.MatchResult`
`matcher(jakarta.servlet.http.HttpServletRequest request)`
Returns a MatchResult for this RequestMatcher The default implementation returns `Collections.emptyMap()` when `RequestMatcher.MatchResult.getVariables()` is invoked.
`boolean`
`matches(jakarta.servlet.http.HttpServletRequest request)`
Returns true if the configured pattern (and HTTP-Method) match those of the supplied request.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## 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`