类 AntPathMatcher

java.lang.Object
net.oschina.j2cache.util.AntPathMatcher
所有已实现的接口:
PatternMatcher

public class AntPathMatcher extends Object implements PatternMatcher

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 - matches com/test.jsp but also com/tast.jsp or com/txst.jsp
  • com/*.jsp - matches all .jsp files in the com directory
  • com/**/test.jsp - matches all test.jsp files underneath the com path
  • org/apache/shiro/**/*.jsp - matches all .jsp files underneath the org/apache/shiro path
  • org/**/servlet/bla.jsp - matches org/apache/shiro/servlet/bla.jsp but also org/apache/shiro/testing/servlet/bla.jsp and org/servlet/bla.jsp

N.B.: This class was borrowed (with much appreciation) from the Spring Framework with modifications. We didn't want to reinvent the wheel of great work they've done, but also didn't want to force every Shiro user to depend on Spring

As per the Apache 2.0 license, the original copyright notice and all author and copyright information have remained in tact.

从以下版本开始:
16.07.2003
  • 字段详细资料

    • DEFAULT_PATH_SEPARATOR

      public static final String DEFAULT_PATH_SEPARATOR
      Default path separator: "/"
      另请参阅:
  • 构造器详细资料

    • AntPathMatcher

      public AntPathMatcher()
  • 方法详细资料

    • setPathSeparator

      public void setPathSeparator(String pathSeparator)
      Set the path separator to use for pattern parsing. Default is "/", as in Ant.
    • isPattern

      public boolean isPattern(String path)
    • matches

      public boolean matches(String pattern, String source)
      从接口复制的说明: PatternMatcher
      Returns true if the given source matches the specified pattern, false otherwise.
      指定者:
      matches 在接口中 PatternMatcher
      参数:
      pattern - the pattern to match against
      source - the source to match
      返回:
      true if the given source matches the specified pattern, false otherwise.
    • match

      public boolean match(String pattern, String path)
    • matchStart

      public boolean matchStart(String pattern, String path)
    • doMatch

      protected boolean doMatch(String pattern, String path, boolean fullMatch)
      Actually match the given path against the given pattern.
      参数:
      pattern - the pattern to match against
      path - the path String to test
      fullMatch - whether a full pattern match is required (else a pattern match as far as the given base path goes is sufficient)
      返回:
      true if the supplied path matched, false if it didn't
    • extractPathWithinPattern

      public String extractPathWithinPattern(String pattern, String path)
      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 match(java.lang.String, java.lang.String) returns true for 'pattern' and 'path', but does not enforce this.