Class SearchContextRequestHydrator
java.lang.Object
com.broadleafcommerce.data.tracking.core.web.DefaultContextRequestHydrator
com.broadleafcommerce.search.core.web.endpoint.SearchContextRequestHydrator
- All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.web.ContextRequestHydrator,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.core.Ordered
public class SearchContextRequestHydrator
extends com.broadleafcommerce.data.tracking.core.web.DefaultContextRequestHydrator
Hydrates the
customerContextId to the tenantId if it was not provided in the
ContextRequest and if it is not at the tenant level.-
Field Summary
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsConstructorDescriptionSearchContextRequestHydrator(SearchCatalogAccessPolicyUtils catalogAccessPolicyUtils, com.broadleafcommerce.rulesengine.expression.service.RuleEvaluationService ruleEvaluationService, SearchCatalogAccessPolicyService<com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> searchCatalogAccessPolicyService, com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidfilterInheritanceLines(com.broadleafcommerce.data.tracking.core.tenant.domain.Application application, Collection<String> allRestrictedCatalogImplicitIds, Collection<String> visibleRestrictedCatalogImplicitIds) protected voidfilterIsolatedCatalogs(com.broadleafcommerce.data.tracking.core.tenant.domain.Application application, Collection<String> allRestrictedCatalogImplicitIds, Collection<String> visibleRestrictedCatalogImplicitIds) protected com.broadleafcommerce.resource.security.utils.service.AuthenticationUtilsprotected SearchCatalogAccessPolicyUtilsgetImplicitCatalogIdsForRestrictedCatalogs(Collection<? extends com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> catalogAccessPolicies, Map<String, String> catalogIdsToImplicitIds) intgetOrder()protected com.broadleafcommerce.rulesengine.expression.service.RuleEvaluationServiceprotected SearchCatalogAccessPolicyService<com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy>com.broadleafcommerce.data.tracking.core.context.ContextRequesthydrate(com.broadleafcommerce.data.tracking.core.context.ContextRequest dehydrated) AdditionalContextRequesthydration steps pertaining toSearchCatalogAccessPolicyrestrictions.protected voidhydrateCustomerContextId(com.broadleafcommerce.data.tracking.core.context.ContextRequest dehydrated) protected List<com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy>readCatalogTargetingAccessPolicies(com.broadleafcommerce.data.tracking.core.context.ContextRequest dehydrated) protected voidupdateApplicationCatalogs(com.broadleafcommerce.data.tracking.core.context.ContextRequest contextRequest, Collection<? extends com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> catalogAccessPolicies, Map<String, String> catalogIdsToImplicitIds, @NonNull Set<? extends com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> policiesMatchingContext) Removes inheritance lines and isolated catalogs from the resolved application if they are not visible due to aSearchCatalogAccessPolicythat targets them not matching the request context.protected <D extends com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy>
voidupdateCatalog(com.broadleafcommerce.data.tracking.core.context.ContextRequest contextRequest, Collection<D> catalogAccessPolicies, @NonNull Set<D> policiesMatchingContext) Evaluates the match rules ofSearchCatalogAccessPoliciestargeting the application'sApplication.getIsolatedCatalogs()against the currentSearchCatalogAccessPolicyContext.Methods inherited from class com.broadleafcommerce.data.tracking.core.web.DefaultContextRequestHydrator
determineCatalog, fetchFromCache, isCatalogVisible, setApplicationService, setAttributesConverter, setBeanFactory, setCatalogService, setDataRouteReference, setEnvironment, setupCurrentCatalog, setupSiteInheritanceLines
-
Constructor Details
-
SearchContextRequestHydrator
public SearchContextRequestHydrator(SearchCatalogAccessPolicyUtils catalogAccessPolicyUtils, com.broadleafcommerce.rulesengine.expression.service.RuleEvaluationService ruleEvaluationService, SearchCatalogAccessPolicyService<com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> searchCatalogAccessPolicyService, com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils authenticationUtils)
-
-
Method Details
-
hydrate
public com.broadleafcommerce.data.tracking.core.context.ContextRequest hydrate(com.broadleafcommerce.data.tracking.core.context.ContextRequest dehydrated) AdditionalContextRequesthydration steps pertaining toSearchCatalogAccessPolicyrestrictions. These evaluate active policy restrictions to make the due updates to the context request'sApplication.getIsolatedCatalogs(),Application.getInheritanceLines()and theContextRequest.getCatalogHierarchy()- Specified by:
hydratein interfacecom.broadleafcommerce.data.tracking.core.web.ContextRequestHydrator- Overrides:
hydratein classcom.broadleafcommerce.data.tracking.core.web.DefaultContextRequestHydrator- Parameters:
dehydrated- the dehydrated context request- Returns:
- the hydrated context request
-
readCatalogTargetingAccessPolicies
protected List<com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> readCatalogTargetingAccessPolicies(com.broadleafcommerce.data.tracking.core.context.ContextRequest dehydrated) -
updateCatalog
protected <D extends com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> void updateCatalog(com.broadleafcommerce.data.tracking.core.context.ContextRequest contextRequest, Collection<D> catalogAccessPolicies, @NonNull @NonNull Set<D> policiesMatchingContext) Evaluates the match rules ofSearchCatalogAccessPoliciestargeting the application'sApplication.getIsolatedCatalogs()against the currentSearchCatalogAccessPolicyContext.- Parameters:
contextRequest- the context request to modifycatalogAccessPolicies- the list of all catalog access policies
-
updateApplicationCatalogs
protected void updateApplicationCatalogs(com.broadleafcommerce.data.tracking.core.context.ContextRequest contextRequest, Collection<? extends com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> catalogAccessPolicies, Map<String, String> catalogIdsToImplicitIds, @NonNull @NonNull Set<? extends com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> policiesMatchingContext) Removes inheritance lines and isolated catalogs from the resolved application if they are not visible due to aSearchCatalogAccessPolicythat targets them not matching the request context.- Parameters:
contextRequest- the context request to modifycatalogAccessPolicies- the list of all catalog access policiescatalogIdsToImplicitIds- the map of catalog ids to implicit ids used in the catalog ref
-
filterInheritanceLines
protected void filterInheritanceLines(com.broadleafcommerce.data.tracking.core.tenant.domain.Application application, Collection<String> allRestrictedCatalogImplicitIds, Collection<String> visibleRestrictedCatalogImplicitIds) -
filterIsolatedCatalogs
protected void filterIsolatedCatalogs(com.broadleafcommerce.data.tracking.core.tenant.domain.Application application, Collection<String> allRestrictedCatalogImplicitIds, Collection<String> visibleRestrictedCatalogImplicitIds) -
hydrateCustomerContextId
protected void hydrateCustomerContextId(com.broadleafcommerce.data.tracking.core.context.ContextRequest dehydrated) -
getImplicitCatalogIdsForRestrictedCatalogs
-
getOrder
public int getOrder() -
getCatalogAccessPolicyUtils
-
getRuleEvaluationService
protected com.broadleafcommerce.rulesengine.expression.service.RuleEvaluationService getRuleEvaluationService() -
getSearchCatalogAccessPolicyService
protected SearchCatalogAccessPolicyService<com.broadleafcommerce.search.api.domain.accesspolicy.SearchCatalogAccessPolicy> getSearchCatalogAccessPolicyService() -
getAuthenticationUtils
protected com.broadleafcommerce.resource.security.utils.service.AuthenticationUtils getAuthenticationUtils()
-