Class HerodotusPathPatternRequestMatcher.Builder
- Enclosing class:
- HerodotusPathPatternRequestMatcher
HerodotusPathPatternRequestMatcher.
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")
)
...
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionMatch requests starting with thisbasePath.matcher(HerodotusRequest request) Match requests having this path pattern.Match requests having thisHttpMethodand path pattern.
-
Constructor Details
-
Builder
Builder() -
Builder
Builder(org.springframework.web.util.pattern.PathPatternParser parser) -
Builder
Builder(org.springframework.web.util.pattern.PathPatternParser parser, String basePath)
-
-
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- Parameters:
basePath- the path prefix- Returns:
- the
HerodotusPathPatternRequestMatcher.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
HerodotusPathPatternRequestMatcher.Builderfor more configuration
-
matcher
public HerodotusPathPatternRequestMatcher 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
HerodotusPathPatternRequestMatcher.Builderfor more configuration
-
matcher
-