Class ImpersonationServiceImpl
java.lang.Object
org.glassfish.security.services.impl.ImpersonationServiceImpl
- All Implemented Interfaces:
ImpersonationService
@Service(name="impersonationService")
@Singleton
public class ImpersonationServiceImpl
extends Object
implements ImpersonationService
The Impersonation Service Implementation.
- Author:
- jazheng
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionimpersonate
(String user, String[] groups, Subject subject, boolean virtual) Impersonate a user, specifying the user and group principal names that should be established in the resulting Subject.
-
Constructor Details
-
ImpersonationServiceImpl
public ImpersonationServiceImpl()
-
-
Method Details
-
impersonate
public Subject impersonate(String user, String[] groups, Subject subject, boolean virtual) throws LoginException Description copied from interface:ImpersonationService
Impersonate a user, specifying the user and group principal names that should be established in the resulting Subject. Note that, that this method always behaves as ifvirtual were true in the case that the underlying user store provider does not support user lookup.- Specified by:
impersonate
in interfaceImpersonationService
- Parameters:
user
- The username.groups
- An array of group names. Ifvirtual is true, group principals will be created using this array. Ifvirtual is false and groups is non-null, it will be used to filter the groups returned by the configured UserStoreProvider.subject
- An optional Subject to receive principals and credentials for the logged in user. If provided, it will be returned as the return value; if not, a new Subject will be returned.virtual
- If true, simply create a subject with the given user and group names. If false, configured UserStoreProvider will be queried for the given username and a Subject created only if the user exists. Groups will be populated with the intersection of the groups parameter and the groups returned by the UserStoreProvider.- Returns:
- A Subject representing the impersonated user.
- Throws:
LoginException
-