Class ClusterPermission

  • All Implemented Interfaces:
    Serializable, Guard

    public final class ClusterPermission
    extends Permission
    implements Serializable
    This class represents access to a clustered resource such as a Service or NamedCache. A ClusterPermission consists of a target name and a set of actions valid for that target.

    Target name is a string containing a list of one or more comma-separated target attributes. The valid target attributes are:

    • "service=<service-name>"
    • "service=<service-prefix*>"
    • "cache=<cache-name>"
    • "cache=<cache-prefix*>"
    • "*"
    If a target string does not contain the "service" attribute, it is equivalent to the "service=*" attribute value. If a target string does not contain the "cache" attribute, it is equivalent to the "cache=*" attribute value or is meant to indicate a service that is not a CacheService (e.g. InvocationService). A target name string consisting of a single "*" indicates all clustered resources.

    The actions to be granted are passed to the constructor in a string containing a list of one or more comma-separated keywords. The possible keywords are: "create", "destroy", "join", "all". An action string "all" indicates a combination of all valid actions.
    Note: the actions string is converted to lowercase before processing.

    Since:
    Coherence 2.5
    Author:
    gg 2004.05.28
    See Also:
    Serialized Form
    • Constructor Detail

      • ClusterPermission

        public ClusterPermission​(String sTarget,
                                 String sAction)
        Construct a ClusterPermission object.
        Parameters:
        sTarget - the clustered resource name; must be specified
        sAction - the action(s) name; must be specified
      • ClusterPermission

        public ClusterPermission​(String sClusterName,
                                 String sTarget,
                                 String sAction)
        Construct a ClusterPermission object.
        Parameters:
        sClusterName - the cluster name
        sTarget - the clustered resource name; must be specified
        sAction - the action(s) name; must be specified
    • Method Detail

      • implies

        public boolean implies​(Permission permission)
        Check if the specified permission's actions are "implied by" this object's actions.

        There is a slight difference in semantics of the wild card ("*") in "this" and passed-in Permission's target. The specified permission for cache-less services will not contain any "cache=" attribute in the target string, while cache services will always specify a "cache=" attribute.

        Specified by:
        implies in class Permission
        Parameters:
        permission - the permission to check against
        Returns:
        true if the specified permission is implied by this object, false if not
      • equals

        public boolean equals​(Object obj)
        Checks two Permission objects for equality.
        Specified by:
        equals in class Permission
        Parameters:
        obj - the object we are testing for equality with this object
        Returns:
        true if both Permission objects are equivalent
      • hashCode

        public int hashCode()
        Return the hash code value for this ClusterPermission object.
        Specified by:
        hashCode in class Permission
        Returns:
        a hash code value for this object
      • getActions

        public String getActions()
        Return the actions as a String in a canonical form.
        Specified by:
        getActions in class Permission
        Returns:
        the actions of this Permission
      • getClusterName

        public String getClusterName()
        Return the cluster name.
        Returns:
        the cluster name
      • getServiceName

        public String getServiceName()
        Return the service name for this permission object or null if the permission applies to any service.
        Returns:
        the service name for this permission object
      • getCacheName

        public String getCacheName()
        Return the cache name for this permission object or null if the permission applies to any cache.
        Returns:
        the cache name for this permission object
      • parseTarget

        protected void parseTarget​(String sTarget)
        Parse the target string.
        Parameters:
        sTarget - the target string
      • parseAction

        protected void parseAction​(String sAction)
        Parse the action string and set the action flag.
        Parameters:
        sAction - the action string
      • formatAction

        public static String formatAction​(int nAction)
        Format the action string.
        Parameters:
        nAction - the action mask
        Returns:
        the action string
      • main

        public static void main​(String[] asArg)
        Unit test allows to compare the specified permissions.
           java com.tangosol.net.ClusterPermission <target1> <action1> <target2> <action2>