public class RoleDimensionApiFilterRequestMapper extends ChainingRequestMapper<DataApiRequest>
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_SECURITY_MESSAGE |
static String |
SECURITY_SIGNUP_MESSAGE_KEY |
Constructor and Description |
---|
RoleDimensionApiFilterRequestMapper(ResourceDictionaries resourceDictionaries,
Dimension dimension,
Map<String,Set<ApiFilter>> roleApiFilters,
RequestMapper<DataApiRequest> next)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected Set<ApiFilter> |
buildSecurityFilters(javax.ws.rs.core.SecurityContext securityContext)
Collect all the whitelist filters generated by roles in this security context.
|
protected DataApiRequest |
internalApply(DataApiRequest request,
javax.ws.rs.container.ContainerRequestContext context)
Rewrite and Validate the ApiRequest(e.g.
|
protected ApiFilters |
mergeSecurityFilters(Map<Dimension,Set<ApiFilter>> requestFilters,
Set<ApiFilter> securityFilters)
Merge the request filters with the dimension filters for this request.
|
protected static Set<ApiFilter> |
unionMergeFilterValues(Stream<ApiFilter> filterStream)
For a set of ApiFilters collect by dimension, field and operation, and union their value sets.
|
protected void |
validateSecurityFilters(Principal userPrincipal,
Set<ApiFilter> mergedSecurityFilters)
Verify that, given this user, that at least some of the whitelisted filters have been collected.
|
apply
getResourceDictionaries
public static final String SECURITY_SIGNUP_MESSAGE_KEY
public static final String DEFAULT_SECURITY_MESSAGE
public RoleDimensionApiFilterRequestMapper(ResourceDictionaries resourceDictionaries, Dimension dimension, Map<String,Set<ApiFilter>> roleApiFilters, RequestMapper<DataApiRequest> next)
resourceDictionaries
- The dictionaries to use for request mapping.dimension
- The dimension whose roles are being matchedroleApiFilters
- ApiFilters by role for a given dimensionnext
- The next request mapper to process this ApiRequestprotected DataApiRequest internalApply(DataApiRequest request, javax.ws.rs.container.ContainerRequestContext context) throws RequestValidationException
ChainingRequestMapper
This should throw an exception if the given/converted request is not valid.
internalApply
in class ChainingRequestMapper<DataApiRequest>
request
- the apiRequest to rewritecontext
- the ContainerRequestContext containing user and request informationRequestValidationException
- with the HTTP status and user-facing error msg to abort with
if the request is not validprotected ApiFilters mergeSecurityFilters(Map<Dimension,Set<ApiFilter>> requestFilters, Set<ApiFilter> securityFilters)
requestFilters
- The set of all ApiFilters from a requestsecurityFilters
- The filters produced by merging role-based filtersprotected void validateSecurityFilters(Principal userPrincipal, Set<ApiFilter> mergedSecurityFilters) throws RequestValidationException
userPrincipal
- The userPrincipal being validatedmergedSecurityFilters
- The combined security filters for this requestRequestValidationException
- An http request exception documenting the lack of privilegesprotected Set<ApiFilter> buildSecurityFilters(javax.ws.rs.core.SecurityContext securityContext)
securityContext
- The security context of the request.protected static Set<ApiFilter> unionMergeFilterValues(Stream<ApiFilter> filterStream)
filterStream
- Stream of ApiFilters whose values are to be unionedCopyright © 2016–2018 Yahoo! Inc.. All rights reserved.