public class DefaultImpersonationRequestValidator extends Object implements ImpersonationRequestValidator
ImpersonationRequestValidator
that validates that the CSR has
authority to impersonate, the impersonated target exists, and that the impersonated target has
chosen to allow impersonation.Modifier and Type | Field and Description |
---|---|
static String |
DISABLED_USER |
static String |
EXPIRED_USER |
static String |
IMPERSONATION_DISABLED |
static String |
LOCKED_USER |
static String |
NO_USER |
static String |
NON_ADMIN_CLIENT |
static String |
NON_APP_CLIENT |
static String |
NOT_AUTHORIZED_FOR_APP |
static String |
REQUEST_FIELD_BLANK |
static String |
TENANT_MISMATCH |
static String |
TOKEN_FIELD_BLANK |
Constructor and Description |
---|
DefaultImpersonationRequestValidator(UserService<User> userService,
AuthorizedClientService<AuthorizedClient> authorizedClientService,
AuthorizationServerService<AuthorizationServer> authorizationServerService,
org.springframework.security.oauth2.provider.ClientDetailsService clientDetailsService,
org.springframework.security.oauth2.provider.endpoint.RedirectResolver redirectResolver) |
Modifier and Type | Method and Description |
---|---|
protected AuthorizedClient |
getCsrClient(String clientId) |
protected User |
getCsrUser(String userId) |
protected AuthorizedClient |
getImpersonatedClient(OAuth2UserDetails impersonatedUser) |
protected AuthorizedClient |
getImpersonatedClient(String clientId) |
protected boolean |
isNotAuthorizedForApplication(User user,
String applicationId) |
protected boolean |
isNotSameTenant(AuthorizedClient impersonatedClient,
AuthorizedClient csrClient) |
void |
validateAnonymousImpersonation(ImpersonationRequest impersonationRequest,
String impersonatedClientId,
String csrUserId)
Validates that the CSR can impersonate an anonymous user in the client.
|
protected void |
validateClientImpersonation(ImpersonationRequest impersonationRequest,
AuthorizedClient impersonatedClient,
String csrUserId) |
void |
validateImpersonationRequest(ImpersonationRequest impersonationRequest)
Validate that an impersonation request is valid.
|
void |
validateImpersonationRequestToken(ImpersonationRequestToken impersonationRequestToken)
Validate that an impersonation request token is valid.
|
void |
validateUserImpersonation(ImpersonationRequest impersonationRequest,
OAuth2UserDetails impersonatedUser,
String csrUserId)
Validates that the user requested to be impersonated is able to be impersonated.
|
public static final String NO_USER
public static final String DISABLED_USER
public static final String EXPIRED_USER
public static final String LOCKED_USER
public static final String IMPERSONATION_DISABLED
public static final String NON_APP_CLIENT
public static final String NON_ADMIN_CLIENT
public static final String TENANT_MISMATCH
public static final String NOT_AUTHORIZED_FOR_APP
public static final String REQUEST_FIELD_BLANK
public static final String TOKEN_FIELD_BLANK
public DefaultImpersonationRequestValidator(UserService<User> userService, AuthorizedClientService<AuthorizedClient> authorizedClientService, AuthorizationServerService<AuthorizationServer> authorizationServerService, org.springframework.security.oauth2.provider.ClientDetailsService clientDetailsService, org.springframework.security.oauth2.provider.endpoint.RedirectResolver redirectResolver)
public void validateUserImpersonation(ImpersonationRequest impersonationRequest, OAuth2UserDetails impersonatedUser, String csrUserId)
ImpersonationRequestValidator
validateUserImpersonation
in interface ImpersonationRequestValidator
impersonationRequest
- The impersonation request.impersonatedUser
- The user to be impersonated.csrUserId
- The user ID of the user initiating the impersonation request.public void validateAnonymousImpersonation(ImpersonationRequest impersonationRequest, String impersonatedClientId, String csrUserId)
ImpersonationRequestValidator
validateAnonymousImpersonation
in interface ImpersonationRequestValidator
impersonationRequest
- The impersonation request.impersonatedClientId
- The ID of client to impersonate incsrUserId
- The user ID of the user initiating the impersonation request.public void validateImpersonationRequest(ImpersonationRequest impersonationRequest)
ImpersonationRequestValidator
validateImpersonationRequest
in interface ImpersonationRequestValidator
impersonationRequest
- This impersonation request.public void validateImpersonationRequestToken(ImpersonationRequestToken impersonationRequestToken)
ImpersonationRequestValidator
validateImpersonationRequestToken
in interface ImpersonationRequestValidator
impersonationRequestToken
- This impersonation request token.protected void validateClientImpersonation(ImpersonationRequest impersonationRequest, AuthorizedClient impersonatedClient, String csrUserId)
protected AuthorizedClient getImpersonatedClient(OAuth2UserDetails impersonatedUser)
protected AuthorizedClient getImpersonatedClient(String clientId)
protected AuthorizedClient getCsrClient(String clientId)
protected boolean isNotSameTenant(AuthorizedClient impersonatedClient, AuthorizedClient csrClient)
Copyright © 2021. All rights reserved.