@ConsumerType
public interface ResourceProviderFactory
ResourceProviderFactory
defines the service API to get and
create ResourceProviders
s 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.
Modifier and Type | Field and Description |
---|---|
static String |
PROPERTY_REQUIRED
A required resource provider factory is accessed directly when a new
resource resolver is created.
|
static String |
SERVICE_BUNDLE
The authentication information property referring to the bundle
providing a service for which a resource provider is to be retrieved.
|
Modifier and Type | Method and Description |
---|---|
ResourceProvider |
getAdministrativeResourceProvider(Map<String,Object> authenticationInfo)
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. |
ResourceProvider |
getResourceProvider(Map<String,Object> authenticationInfo)
Returns a new
ResourceProvider instance with further
configuration taken from the given authenticationInfo map. |
static final String PROPERTY_REQUIRED
false
static final String SERVICE_BUNDLE
ResourceResolverFactory.SUBSERVICE
property may also be
present.
ResourceResolverFactory
implementations must provide this
property if their implementation of the
ResourceResolverFactory.getServiceResourceResolver(Map)
method
use a resource provider factory.
The type of this property, if present, is
org.osgi.framework.Bundle
.
@Nonnull ResourceProvider getResourceProvider(Map<String,Object> authenticationInfo) throws LoginException
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
property the SERVICE_BUNDLE
property is provided to implement
service authentication.
The 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.
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
.ResourceProvider
according to the
authenticationInfo
.LoginException
- If an error occurs creating the new
ResourceProvider
with the provided credential
data.@Deprecated @Nonnull ResourceProvider getAdministrativeResourceProvider(Map<String,Object> authenticationInfo) throws LoginException
getResourceProvider(Map)
method honoring the SERVICE_BUNDLE
and
ResourceResolverFactory.SUBSERVICE
properties.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.
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
.ResourceProvider
with administrative privileges unless
the ResourceResolverFactory.USER_IMPERSONATION
was set in
the authenticationInfo
.LoginException
- If an error occurs creating the new
ResourceResolverFactory
with the provided
credential data.Copyright © 2015 The Apache Software Foundation. All rights reserved.