Interface ResourceProviderFactory


  • @ConsumerType
    @Deprecated
    public interface ResourceProviderFactory
    Deprecated.
    The ResourceProviderFactory defines the service API to get and create ResourceProviderss dynamically on a per usage base. Instead of sharing a resource provider between resource resolvers, the factory allows to create an own instance of a resource provider per resource resolver. The factory also supports authentication.

    If the resource provider is not used anymore and implements the DynamicResourceProvider interface, the close method should be called.

    Since:
    2.2.0 (Sling API Bundle 2.2.0)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String PROPERTY_REQUIRED
      Deprecated.
      A required resource provider factory is accessed directly when a new resource resolver is created.
      static java.lang.String SERVICE_BUNDLE
      Deprecated.
      The authentication information property referring to the bundle providing a service for which a resource provider is to be retrieved.
    • Field Detail

      • PROPERTY_REQUIRED

        static final java.lang.String PROPERTY_REQUIRED
        Deprecated.
        A required resource provider factory is accessed directly when a new resource resolver is created. Only if authentication against all required resource provider factories is successful, a resource resolver is created by the resource resolver factory. Boolean service property, default value is false.
        See Also:
        Constant Field Values
    • Method Detail

      • getResourceProvider

        @NotNull
        @NotNull ResourceProvider getResourceProvider​(java.util.Map<java.lang.String,​java.lang.Object> authenticationInfo)
                                               throws LoginException
        Deprecated.
        Returns a new ResourceProvider instance with further configuration taken from the given authenticationInfo map. Generally this map will contain a user name and password to authenticate.

        The authenticationInfo map will in general contain the same information as provided to the respective ResourceResolver method. For

        If the authenticationInfo map is null the ResourceProvider returned will generally not be authenticated and only provide minimal privileges, if any at all.

        Implementations must ignore the ResourceResolverFactory.USER property the SERVICE_BUNDLE property is provided to implement service authentication.

        The ResourceResolverFactory.USER_IMPERSONATION property is obeyed but requires that the actual user has permission to impersonate as the requested user. If such permission is missing, a LoginException is thrown.

        Parameters:
        authenticationInfo - A map of further credential information which may be used by the implementation to parameterize how the resource provider is created. This may be null.
        Returns:
        A ResourceProvider according to the authenticationInfo.
        Throws:
        LoginException - If an error occurs creating the new ResourceProvider with the provided credential data.
        See Also:
        Service Authentication
      • getAdministrativeResourceProvider

        @Deprecated
        @NotNull
        @NotNull ResourceProvider getAdministrativeResourceProvider​(java.util.Map<java.lang.String,​java.lang.Object> authenticationInfo)
                                                             throws LoginException
        Deprecated.
        as of 2.4 (bundle version 2.5.0) because of inherent security issues. Implementations may implement this method at their discretion but must support the new service based resource provider generation in the getResourceProvider(Map) method honoring the SERVICE_BUNDLE and ResourceResolverFactory.SUBSERVICE properties.
        Returns a new ResourceProvider instance with administrative privileges with further configuration taken from the given authenticationInfo map.

        Note, that if the authenticationInfo map contains the ResourceResolverFactory.USER_IMPERSONATION attribute the ResourceProvider returned will only have administrative privileges if the user identified by the property has administrative privileges.

        Implementations of this method should throw LoginException if they don't support it.

        Parameters:
        authenticationInfo - A map of further credential information which may be used by the implementation to parameterize how the resource provider is created. This may be null.
        Returns:
        A ResourceProvider with administrative privileges unless the ResourceResolverFactory.USER_IMPERSONATION was set in the authenticationInfo.
        Throws:
        LoginException - If an error occurs creating the new ResourceResolverFactory with the provided credential data.