Class PathPatternRequestMatcher.Builder
- Enclosing class:
- PathPatternRequestMatcher
PathPatternRequestMatcher
.
To match a request URI like /app/servlet/my/resource/**
where /app
is the context path, you can do
PathPatternRequestMatcher.withDefaults().matcher("/servlet/my/resource/**")
If you have many paths that have a common path prefix, you can use
basePath
to reduce repetition like so:
PathPatternRequestMatcher.Builder mvc = withDefaults().basePath("/mvc"); http .authorizeHttpRequests((authorize) -> authorize .requestMatchers(mvc.matcher("/user/**")).hasAuthority("user") .requestMatchers(mvc.matcher("/admin/**")).hasAuthority("admin") ) ...
-
Method Summary
Modifier and TypeMethodDescriptionMatch requests starting with thisbasePath
.Match requests having this path pattern.Match requests having thisHttpMethod
and path pattern.
-
Method Details
-
basePath
Match requests starting with thisbasePath
.Prefixes should be of the form
/my/prefix
, starting with a slash, not ending in a slash, and not containing and wildcards The special value"/"
may be used to indicate the root context.- Parameters:
basePath
- the path prefix- Returns:
- the
PathPatternRequestMatcher.Builder
for more configuration
-
matcher
Match requests having this path pattern.When the HTTP
method
is null, then the matcher does not consider the HTTP methodPath patterns always start with a slash and may contain placeholders. They can also be followed by
/**
to signify all URIs under a given path.These must be specified relative to any context path prefix. A
basePath
may be specified to reuse a common prefix, for example a servlet path.The following are valid patterns and their meaning
/path
- match exactly and only `/path`/path/**
- match `/path` and any of its descendents/path/{value}/**
- match `/path/subdirectory` and any of its descendents, capturing the value of the subdirectory inRequestAuthorizationContext.getVariables()
A more comprehensive list can be found at
PathPattern
.- Parameters:
path
- the path pattern to match- Returns:
- the
PathPatternRequestMatcher.Builder
for more configuration
-
matcher
public PathPatternRequestMatcher matcher(@Nullable org.springframework.http.HttpMethod method, String path) Match requests having thisHttpMethod
and path pattern.When the HTTP
method
is null, then the matcher does not consider the HTTP methodPath patterns always start with a slash and may contain placeholders. They can also be followed by
/**
to signify all URIs under a given path.These must be specified relative to any context path prefix. A
basePath
may be specified to reuse a common prefix, for example a servlet path.The following are valid patterns and their meaning
/path
- match exactly and only `/path`/path/**
- match `/path` and any of its descendents/path/{value}/**
- match `/path/subdirectory` and any of its descendents, capturing the value of the subdirectory inRequestAuthorizationContext.getVariables()
A more comprehensive list can be found at
PathPattern
.- Parameters:
method
- theHttpMethod
to match, may be nullpath
- the path pattern to match- Returns:
- the
PathPatternRequestMatcher.Builder
for more configuration
-