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 thisHttpMethodand 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.Builderfor more configuration
-
matcher
Match requests having this path pattern.When the HTTP
methodis 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
basePathmay 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.Builderfor more configuration
-
matcher
public PathPatternRequestMatcher matcher(@Nullable org.springframework.http.HttpMethod method, String path) Match requests having thisHttpMethodand path pattern.When the HTTP
methodis 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
basePathmay 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- theHttpMethodto match, may be nullpath- the path pattern to match- Returns:
- the
PathPatternRequestMatcher.Builderfor more configuration
-