Interface Authorizable

  • All Known Subinterfaces:
    Group, User

    @ProviderType
    public interface Authorizable
    The Authorizable is the common base interface for User and Group. It provides access to the Principals associated with an Authorizable (see below) and allow to access and modify additional properties such as e.g. full name, e-mail or address.

    Please note the difference between Authorizable and Principal:
    An Authorizable is repository object that is neither associated with nor depending from a particular Session and thus independent of the login mechanisms creating Sessions.

    On the other hand Principals are representations of user identities. In other words: each Principal within the set associated with the Session's Subject upon login represents an identity for that user. An the set of Principals may differ between different login mechanisms.

    Consequently an one-to-many relationship exists between Authorizable and Principal (see also getPrincipal().

    The interfaces derived from Authorizable are defined as follows:

    • User: defined to be an Authorizable that can be authenticated (by using Credentials) and impersonated.
    • Group: defined to be a collection of other Authorizables.
    See Also:
    User, Group
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      @NotNull java.util.Iterator<Group> declaredMemberOf()  
      @NotNull java.lang.String getID()
      Return the implementation specific identifier for this Authorizable.
      @NotNull java.lang.String getPath()
      Returns a JCR path if this authorizable instance is associated with an item that can be accessed by the editing Session.
      @NotNull java.security.Principal getPrincipal()  
      @Nullable Value[] getProperty​(@NotNull java.lang.String relPath)
      Returns the values for the properties with the specified name or null.
      @NotNull java.util.Iterator<java.lang.String> getPropertyNames()
      Returns the names of properties present with this Authorizable not taking possible relative paths into consideration.
      @NotNull java.util.Iterator<java.lang.String> getPropertyNames​(@NotNull java.lang.String relPath)
      Returns the names of properties present with this Authorizable at the specified relative path.
      boolean hasProperty​(@NotNull java.lang.String relPath)
      Tests if a the property with specified name exists.
      boolean isGroup()  
      @NotNull java.util.Iterator<Group> memberOf()  
      void remove()
      Removes this Authorizable, if the session has sufficient permissions.
      boolean removeProperty​(@NotNull java.lang.String relPath)
      Removes the property with the given name.
      void setProperty​(@NotNull java.lang.String relPath, @Nullable Value value)
      Set an arbitrary property to this Authorizable.
      void setProperty​(@NotNull java.lang.String relPath, @Nullable Value[] value)
      Set an arbitrary property to this Authorizable.
    • Method Detail

      • getID

        @NotNull
        @NotNull java.lang.String getID()
                                 throws RepositoryException
        Return the implementation specific identifier for this Authorizable. It could e.g. be a UserID or simply the principal name.
        Returns:
        Name of this Authorizable.
        Throws:
        RepositoryException - if an error occurs.
      • isGroup

        boolean isGroup()
        Returns:
        if the current Authorizable is a Group
      • remove

        void remove()
             throws RepositoryException
        Removes this Authorizable, if the session has sufficient permissions. Note, that removing an Authorizable even if it listed as member of a Group or if still has members (this is a Group itself).
        Throws:
        RepositoryException - If an error occurred and the Authorizable could not be removed.
      • getPropertyNames

        @NotNull
        @NotNull java.util.Iterator<java.lang.String> getPropertyNames​(@NotNull
                                                                       @NotNull java.lang.String relPath)
                                                                throws RepositoryException
        Returns the names of properties present with this Authorizable at the specified relative path.
        Parameters:
        relPath - A relative path.
        Returns:
        names of properties.
        Throws:
        RepositoryException - If an error occurs.
        See Also:
        getProperty(String), hasProperty(String)
      • hasProperty

        boolean hasProperty​(@NotNull
                            @NotNull java.lang.String relPath)
                     throws RepositoryException
        Tests if a the property with specified name exists.
        Parameters:
        relPath - The relative path to the property to be tested.
        Returns:
        true if a property with the given name exists.
        Throws:
        RepositoryException - If an error occurs.
        See Also:
        getProperty(String)
      • setProperty

        void setProperty​(@NotNull
                         @NotNull java.lang.String relPath,
                         @Nullable
                         @Nullable Value value)
                  throws RepositoryException
        Set an arbitrary property to this Authorizable.
        Parameters:
        relPath - The relative path of the property to be added or modified.
        value - The desired value.
        Throws:
        RepositoryException - If the specified property could not be set.
      • setProperty

        void setProperty​(@NotNull
                         @NotNull java.lang.String relPath,
                         @Nullable
                         @Nullable Value[] value)
                  throws RepositoryException
        Set an arbitrary property to this Authorizable.
        Parameters:
        relPath - The relative path of the property to be added or modified.
        value - The desired property values.
        Throws:
        RepositoryException - If the specified property could not be set.
      • getProperty

        @Nullable
        @Nullable Value[] getProperty​(@NotNull
                                      @NotNull java.lang.String relPath)
                               throws RepositoryException
        Returns the values for the properties with the specified name or null.
        Parameters:
        relPath - Relative path of the property to be retrieved.
        Returns:
        value of the property with the given name or null if no such property exists.
        Throws:
        RepositoryException - If an error occurs.
      • removeProperty

        boolean removeProperty​(@NotNull
                               @NotNull java.lang.String relPath)
                        throws RepositoryException
        Removes the property with the given name.
        Parameters:
        relPath - Relative path (or name) of the property to be removed.
        Returns:
        true If the property at the specified relPath was successfully removed; false if no such property was present.
        Throws:
        RepositoryException - If an error occurs.
      • getPath

        @NotNull
        @NotNull java.lang.String getPath()
                                   throws UnsupportedRepositoryOperationException,
                                          RepositoryException
        Returns a JCR path if this authorizable instance is associated with an item that can be accessed by the editing Session.

        Throws UnsupportedRepositoryOperationException if this method is not supported or if there is no item associated with this authorizable that is accessible by the editing Session.

        Throws RepositoryException if another error occurs while retrieving the path.

        Returns:
        the path of the Item that corresponds to this Authorizable.
        Throws:
        UnsupportedRepositoryOperationException - If this method is not supported or if there exists no accessible item associated with this Authorizable instance.
        RepositoryException - If an error occurs while retrieving the Item path.