@ProviderType
public interface ResourceResolverFactory
ResourceResolverFactory defines the service API to get and
create ResourceResolvers.
As soon as the resource resolver is not used anymore,
ResourceResolver.close() should be called.
All resource resolvers returned by the same resource resolver factory must use the same search path
| Modifier and Type | Field and Description |
|---|---|
static String |
NEW_PASSWORD
Name of the authentication information property providing the new password of
the user for which to create a resource resolver and change the password during login.
|
static String |
PASSWORD
Name of the authentication information property providing the password of
the user for which to create a resource resolver.
|
static String |
SUBSERVICE
Name of the authentication information property providing the Subservice
Name for the service requesting a resource resolver.
|
static String |
USER
Name of the authentication information property providing the name of the
user for which the
getResourceResolver(Map) method creates
resource resolvers. |
static String |
USER_IMPERSONATION
Name of the authentication information property causing the
getResourceResolver(Map),
getAdministrativeResourceResolver(Map), and
getServiceResourceResolver(Map) methods to try to impersonate
the created resource resolver to the requested user and return the
impersonated resource resolver. |
| Modifier and Type | Method and Description |
|---|---|
ResourceResolver |
getAdministrativeResourceResolver(Map<String,Object> authenticationInfo)
Deprecated.
as of 2.4 (bundle version 2.5.0) because of inherent security
issues. Services requiring specific permissions should use
the
getServiceResourceResolver(Map) instead. |
ResourceResolver |
getResourceResolver(Map<String,Object> authenticationInfo)
Returns a new
ResourceResolver instance with further
configuration taken from the given authenticationInfo map. |
ResourceResolver |
getServiceResourceResolver(Map<String,Object> authenticationInfo)
Returns a new
ResourceResolver instance with privileges assigned
to the service provided by the calling bundle. |
ResourceResolver |
getThreadResourceResolver()
Returns the
ResourceResolver for the current thread. |
static final String USER
getResourceResolver(Map) method creates
resource resolvers. This property may be missing in which case an
anonymous (unauthenticated) resource resolver is returned if possible.
The type of this property, if present, is String.
static final String PASSWORD
The type of this property, if present, is char[].
static final String NEW_PASSWORD
The type of this property, if present, is String.
static final String USER_IMPERSONATION
getResourceResolver(Map),
getAdministrativeResourceResolver(Map), and
getServiceResourceResolver(Map) methods to try to impersonate
the created resource resolver to the requested user and return the
impersonated resource resolver.
If this impersonation fails the actual creation of the resource resolver
fails and a LoginException is thrown.
If this property is not set in the authentication info or is set to the
same name as the user.name property this property is
ignored.
The type of this property, if present, is String.
static final String SUBSERVICE
The type of this property, if present, is String.
getServiceResourceResolver(Map),
Constant Field Values@Nonnull ResourceResolver getResourceResolver(Map<String,Object> authenticationInfo) throws LoginException
ResourceResolver instance with further
configuration taken from the given authenticationInfo map.
Generally this map will contain a user name and password to authenticate.
If the authenticationInfo map is null the
ResourceResolver returned will generally not be
authenticated and only provide minimal privileges, if any at all.
The 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.
authenticationInfo - A map of further credential information which
may be used by the implementation to parameterize how the
resource resolver is created. This may be null.ResourceResolver according to the
authenticationInfo.LoginException - If an error occurs creating the new
ResourceResolver with the provided credential
data.@Deprecated @Nonnull ResourceResolver getAdministrativeResourceResolver(Map<String,Object> authenticationInfo) throws LoginException
getServiceResourceResolver(Map) instead.ResourceResolver instance with administrative
privileges with further configuration taken from the given
authenticationInfo map.
Note, that if the authenticationInfo map contains the
USER_IMPERSONATION attribute the ResourceResolver
returned will only have administrative privileges if the user identified
by the property has administrative privileges.
NOTE: This method is intended for use by infrastructure bundles to
access the repository and provide general services. This method MUST not
be used to handle client requests of whatever kinds. To handle client
requests a regular authenticated resource resolver retrieved through
getResourceResolver(Map) must be used.
This method is deprecated. Services running in the Sling system should
use the getServiceResourceResolver(Map) method instead.
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 resolver is created. This may be null.ResourceResolver with administrative privileges unless
the USER_IMPERSONATION was set in the
authenticationInfo.LoginException - If an error occurs creating the new
ResourceResolver with the provided credential
data.@Nonnull ResourceResolver getServiceResourceResolver(Map<String,Object> authenticationInfo) throws LoginException
ResourceResolver instance with privileges assigned
to the service provided by the calling bundle.
The provided authenticationInfo map may be used to provide
additional information such as the "sling.service.subservice".
USER and PASSWORD properties provided in the map are
ignored.
The USER_IMPERSONATION property is obeyed but requires that the
actual service user has permission to impersonate as the requested user.
If such permission is missing, a LoginException is thrown.
authenticationInfo - A map of further service information which may
be used by the implementation to parameterize how the resource
resolver is created. This may be null.ResourceResolver with appropriate permissions to
execute the service.LoginException - If an error occurs creating the new
ResourceResolver for the service represented by
the calling bundle.getAdministrativeResourceResolver(Map)@CheckForNull ResourceResolver getThreadResourceResolver()
ResourceResolver for the current thread.
Each resource resolver created by getResourceResolver(Map) is associated with
the thread of its creation time. From within this thread, this method returns
the last non-closed resource resolver. When a resource resolver is closed, the
association is removed.
This will never return a resource resolver being created via getAdministrativeResourceResolver(Map)
nor via getServiceResourceResolver(Map).
ResourceResolver created from the current thread or null.Copyright © 2017 The Apache Software Foundation. All rights reserved.