Interface GateKeeper

  • All Known Implementing Classes:
    DownloadGateKeeper

    public interface GateKeeper
    Manages the granting of temporary permissions to retrieve resources. It is assumed that all resources managed by a GateKeeper are restricted, with permission being granted for particular users to particular resources. Resources are identified by a path (usually relative to some directory or URI root), the meaning of the path is implementation-dependent.

    Implementations of this interface are responsible for expiring permissions after some reasonable time period

    The interface was written to manage access to Confluence's temp directory, from which exports and backups can only be downloaded by the user who created them.

    • Method Detail

      • addKey

        void addKey​(String path,
                    com.atlassian.user.User user)
        Permit a user to download a particular resource. This permission is temporary, and may expire after whatever time period the GateKeeper thinks is reasonable.
        Parameters:
        path - the path to the resource being made accessible
        user - the user to grant permission for. null may be used to represent anonymous users.
      • addKey

        void addKey​(String path,
                    String userName)
        Permit a user to download a particular resource. This permission is temporary, and may expire after whatever time period the GateKeeper thinks is reasonable.
        Parameters:
        path - the path to the resource being made accessible
        userName - the name of the user being given permission
      • isAccessPermitted

        boolean isAccessPermitted​(String path,
                                  com.atlassian.user.User user)
        Determine whether a user is permitted to access a resource.
        Parameters:
        path - the path to the resource being requested
        user - the user requesting permission to retrieve that resource
        Returns:
        true if the user is permitted to retrieve that resource, false otherwise
      • isAccessPermitted

        boolean isAccessPermitted​(String path,
                                  String userName)
        Determine whether a user is permitted to access a resource.
        Parameters:
        path - the path to the resource being requested
        userName - the name of the user requesting permission to retrieve that resource
        Returns:
        true if the user is permitted to retrieve that resource, false otherwise
      • cleanAllKeys

        void cleanAllKeys()
        Revoke all granted permissions.
      • allowAnonymousAccess

        void allowAnonymousAccess​(String path)
        Allow access to a resource for any user, including the anonymous user. This permission is temporary, and may expire after whatever time period the GateKeeper thinks is reasonable.
        Parameters:
        path - the path to the resource being made accessible