Package io.micronaut.core.util
Class AntPathMatcher
java.lang.Object
io.micronaut.core.util.AntPathMatcher
- All Implemented Interfaces:
PathMatcher
PathMatcher implementation for Ant-style path patterns. Examples are provided below.
Part of this mapping code has been kindly borrowed from Apache Ant.
The mapping matches URLs using the following rules:
- ? matches one character
- * matches zero or more characters
- ** matches zero or more 'directories' in a path
Some examples:
com/t?st.jsp- matchescom/test.jspbut alsocom/tast.jsporcom/txst.jspcom/*.jsp- matches all.jspfiles in thecomdirectorycom/**/test.jsp- matches alltest.jspfiles underneath thecompathorg/apache/shiro/**/*.jsp- matches all.jspfiles underneath theorg/apache/shiropathorg/**/servlet/bla.jsp- matchesorg/apache/shiro/servlet/bla.jspbut alsoorg/apache/shiro/testing/servlet/bla.jspandorg/servlet/bla.jsp
N.B.: This class was forked from Apache Shiro with modifications.
As per the Apache 2.0 license, the original copyright notice and all author and copyright information have remained intact.
- Since:
- 1.0
-
Field Summary
FieldsFields inherited from interface io.micronaut.core.util.PathMatcher
ANT, REGEX -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanActually match the givenpathagainst the givenpattern.extractPathWithinPattern(String pattern, String path) Given a pattern and a full path, determine the pattern-mapped part.booleanbooleanReturnstrueif the givensourcematches the specifiedpattern,falseotherwise.voidsetPathSeparator(String pathSeparator) Set the path separator to use for pattern parsing.
-
Field Details
-
DEFAULT_PATH_SEPARATOR
Default path separator: "/".- See Also:
-
-
Constructor Details
-
AntPathMatcher
public AntPathMatcher()
-
-
Method Details
-
setPathSeparator
Set the path separator to use for pattern parsing. Default is "/", as in Ant.- Parameters:
pathSeparator- The path separator for the pattern parsing
-
isPattern
- Parameters:
path- The path- Returns:
- Whether is pattern
-
matches
Description copied from interface:PathMatcherReturnstrueif the givensourcematches the specifiedpattern,falseotherwise.- Specified by:
matchesin interfacePathMatcher- Parameters:
pattern- the pattern to match againstsource- the source to match- Returns:
trueif the givensourcematches the specifiedpattern,falseotherwise.
-
doMatch
Actually match the givenpathagainst the givenpattern.- Parameters:
pattern- the pattern to match againstpath- the path String to testfullMatch- whether a full pattern match is required (else a pattern match as far as the given base path goes is sufficient)- Returns:
trueif the suppliedpathmatched,falseif it didn't
-
extractPathWithinPattern
Given a pattern and a full path, determine the pattern-mapped part.For example:
- '
/docs/cvs/commit.html' and '/docs/cvs/commit.html-> '' - '
/docs/*' and '/docs/cvs/commit-> 'cvs/commit' - '
/docs/cvs/*.html' and '/docs/cvs/commit.html-> 'commit.html' - '
/docs/**' and '/docs/cvs/commit-> 'cvs/commit' - '
/docs/**\/*.html' and '/docs/cvs/commit.html-> 'cvs/commit.html' - '
/*.html' and '/docs/cvs/commit.html-> 'docs/cvs/commit.html' - '
*.html' and '/docs/cvs/commit.html-> '/docs/cvs/commit.html' - '
*' and '/docs/cvs/commit.html-> '/docs/cvs/commit.html'
Assumes that
matches(String, String)returnstruefor 'pattern' and 'path', but does not enforce this.- Parameters:
pattern- The patternpath- The path- Returns:
- The pattern-mapped part
- '
-