Class URLPatternSpec


  • class URLPatternSpec
    extends java.lang.Object

    Encapsulation of the URLPatternSpec defined in the WebResourcePermission and WebUserDataPermission classes.

    • Constructor Summary

      Constructors 
      Constructor Description
      URLPatternSpec​(java.lang.String spec)
      The specification contains a URLPatternSpec that identifies the web resources to which the permissions applies.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)  
      int hashCode()  
      (package private) boolean implies​(URLPatternSpec spec)
      Perform the permission URLPattern matching: the first URLPattern in the name of the argument permission is matched by the first URLPattern in the name of this permission. the first URLPattern in the name of the argument permission is NOT matched by any URLPattern in the URLPatternList of the URLPatternSpec of this permission. if the first URLPattern in the name of the argument permission matches the first URLPattern in the URLPatternSpec of this permission, then every URLPattern in the URLPatternList of the URLPatternSpec of this permission is matched by a URLPattern in the URLPatternList of the argument permission.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • urlPattern

        URLPattern urlPattern
        The first or only URLPattern in the specification
      • urlPatternList

        java.util.HashSet<URLPattern> urlPatternList
    • Constructor Detail

      • URLPatternSpec

        URLPatternSpec​(java.lang.String spec)

        The specification contains a URLPatternSpec that identifies the web resources to which the permissions applies. The syntax of a URLPatternSpec is as follows:

         URLPatternList ::= URLPattern | URLPatternList colon URLPattern 
         URLPatternSpec ::= null | URLPattern | URLPattern colon URLPatternList
         

        A null URLPatternSpec is translated to the default URLPattern, "/", by the permission constructor. The empty string is an exact URLPattern, and may occur anywhere in a URLPatternSpec that an exact URLPattern may occur. The first URLPattern in a URLPatternSpec may be any of the pattern types, exact, path-prefix, extension, or default as defined in the Java Servlet Specification). When a URLPatternSpec includes a URLPatternList, the patterns of the URLPatternList identify the resources to which the permission does NOT apply and depend on the pattern type and value of the first pattern as follows:

        • No pattern may exist in the URLPatternList that matches the first pattern.
        • If the first pattern is a path-prefix pattern, only exact patterns matched by the first pattern and path-prefix patterns matched by, but different from, the first pattern may occur in the URLPatternList.
        • If the first pattern is an extension pattern, only exact patterns that are matched by the first pattern and path-prefix patterns may occur in the URLPatternList.
        • If the first pattern is the default pattern, "/", any pattern except the default pattern may occur in the URLPatternList.
        • If the first pattern is an exact pattern a URLPatternList must not be present in the URLPatternSpec.

        Parameters:
        spec - the String representation of the URLPatternSpec as defined by the JACC specification.
    • Method Detail

      • implies

        boolean implies​(URLPatternSpec spec)

        Perform the permission URLPattern matching:

        • the first URLPattern in the name of the argument permission is matched by the first URLPattern in the name of this permission.
        • the first URLPattern in the name of the argument permission is NOT matched by any URLPattern in the URLPatternList of the URLPatternSpec of this permission.
        • if the first URLPattern in the name of the argument permission matches the first URLPattern in the URLPatternSpec of this permission, then every URLPattern in the URLPatternList of the URLPatternSpec of this permission is matched by a URLPattern in the URLPatternList of the argument permission.

        URLPattern matching is performed using the Servlet matching rules where two URL patterns match if they are related as follows:

        • their pattern values are String equivalent, or
        • this pattern is the path-prefix pattern "/*", or
        • this pattern is a path-prefix pattern (that is, it starts with "/" and ends with "/*") and the argument pattern starts with the substring of this pattern, minus its last 2 characters, and the next character of the argument pattern, if there is one, is "/", or
        • this pattern is an extension pattern (that is, it starts with "*.") and the argument pattern ends with this pattern, or
        • the reference pattern is the special default pattern, "/", which matches all argument patterns.

        All of the comparisons described above are case sensitive.

        Parameters:
        spec - the URLPatternSpec to which this URLPatternSpec is to be compared.
        Returns:
        true if this implies spec; false otherwise.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object