Class CMSSiteFilter
java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
de.hybris.platform.yacceleratorstorefront.filters.cms.CMSSiteFilter
- All Implemented Interfaces:
CMSFilter,javax.servlet.Filter,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.context.EnvironmentAware,org.springframework.core.env.EnvironmentCapable,org.springframework.web.context.ServletContextAware
public class CMSSiteFilter
extends org.springframework.web.filter.OncePerRequestFilter
implements CMSFilter
Responsible for setting up application - to main responsibility belongs:
Note: In former versions (i.e. 4.1.1 and earlier) as a preview mechanism we used
- Matches current site by current URL
- Setting current site in session (through
CMSSiteService) - Setting current catalog version (through
CMSSiteService) - Setting session catalog versions (through
CatalogService)
Note: In former versions (i.e. 4.1.1 and earlier) as a preview mechanism we used
de.hybris.platform.cms2.misc.AbstractPreviewServlet which actually is obsolete. All necessary logic was
adapted and moved here. This is a spring configured filter that is executed by the PlatformFilterChain.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final Stringprotected static final intFields inherited from class org.springframework.web.filter.OncePerRequestFilter
ALREADY_FILTERED_SUFFIXFields inherited from class org.springframework.web.filter.GenericFilterBean
loggerFields inherited from interface de.hybris.platform.cms2.misc.CMSFilter
CLEAR_CMSSITE_PARAM, PREVIEW_TICKET_ID_PARAM, PREVIEW_TOKEN -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoFilterInternal(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse, javax.servlet.FilterChain filterChain) protected LanguageModelfilterPreviewLanguageForSite(javax.servlet.http.HttpServletRequest httpRequest, PreviewDataModel previewDataModel) Filters the preview language to a language supported by the site.protected StringgeneratePreviewUrl(javax.servlet.http.HttpServletRequest httpRequest, PreviewDataModel previewDataModel) Generates target URL accordingly to valid Preview Data passed as a parameterprotected BaseSiteServiceprotected CMSPageContextServiceprotected CMSPreviewServiceprotected CMSSiteServiceprotected CommerceCommonI18NServiceprotected ContextInformationLoaderprotected CMSSiteModelprotected UrlResolver<PreviewDataModel>Retrieves current mapping handler in order to generate proper target URL for CMS Pageprotected SessionServiceprotected SiteChannelValidationStrategyprotected booleanisActiveSite(CMSSiteModel site) protected booleanprocessNormalRequest(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse) Processing normal request (i.e.protected voidprocessPreviewData(javax.servlet.http.HttpServletRequest httpRequest, PreviewDataModel previewDataModel) protected StringprocessPreviewRequest(javax.servlet.http.HttpServletRequest httpRequest, CmsPageRequestContextData cmsPageRequestContextData) Processing preview request (i.e.voidsetBaseSiteService(BaseSiteService baseSiteService) voidsetCmsPageContextService(CMSPageContextService cmsPageContextService) voidsetCmsPreviewService(CMSPreviewService cmsPreviewService) voidsetCmsSiteService(CMSSiteService cmsSiteService) voidsetCommerceCommonI18NService(CommerceCommonI18NService commerceCommonI18NService) voidsetContextInformationLoader(ContextInformationLoader contextInformationLoader) protected voidsetFallbackLanguage(javax.servlet.http.HttpServletRequest httpRequest, Boolean enabled) Enables or disables language fall backvoidsetPreviewDataModelUrlResolver(UrlResolver<PreviewDataModel> previewDataModelUrlResolver) voidsetSessionService(SessionService sessionService) voidsetSiteChannelValidationStrategy(SiteChannelValidationStrategy siteChannelValidationStrategy) Methods inherited from class org.springframework.web.filter.OncePerRequestFilter
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatchMethods inherited from class org.springframework.web.filter.GenericFilterBean
addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContextMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface javax.servlet.Filter
destroy, doFilter, init
-
Field Details
-
MISSING_CMS_SITE_ERROR_STATUS
protected static final int MISSING_CMS_SITE_ERROR_STATUS- See Also:
-
MISSING_CMS_SITE_ERROR_MESSAGE
- See Also:
-
INCORRECT_CMS_SITE_CHANNEL_ERROR_MESSAGE
- See Also:
-
-
Constructor Details
-
CMSSiteFilter
public CMSSiteFilter()
-
-
Method Details
-
doFilterInternal
protected void doFilterInternal(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse, javax.servlet.FilterChain filterChain) throws javax.servlet.ServletException, IOException - Specified by:
doFilterInternalin classorg.springframework.web.filter.OncePerRequestFilter- Throws:
javax.servlet.ServletExceptionIOException
-
processPreviewData
protected void processPreviewData(javax.servlet.http.HttpServletRequest httpRequest, PreviewDataModel previewDataModel) -
processNormalRequest
protected boolean processNormalRequest(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse) throws IOException Processing normal request (i.e. when user goes directly to that application - not from cmscockpit) Note:
We preparing application by setting correct:- Current Site
- Current Catalog Versions
- Enabled language fallback
- Parameters:
httpRequest- current requesthttpResponse- the http response- Throws:
IOException- See Also:
-
isActiveSite
-
processPreviewRequest
protected String processPreviewRequest(javax.servlet.http.HttpServletRequest httpRequest, CmsPageRequestContextData cmsPageRequestContextData) Processing preview request (i.e. request with additional parameters likeCMSFilter.PREVIEW_TOKENrequested from cmscockpit) ) Note: Processing preview data in order to generate target URL, and load necessary information in user session- Initialize information (Active CMSSite, Catalog versions,Current catalog version ) information getting from valid Preview Data
- Load all fake information (like: User, User group, Language, Time ...)
- Generating target URL according to Preview Data
- Parameters:
httpRequest- current request- Returns:
- target URL
-
filterPreviewLanguageForSite
protected LanguageModel filterPreviewLanguageForSite(javax.servlet.http.HttpServletRequest httpRequest, PreviewDataModel previewDataModel) Filters the preview language to a language supported by the site. If the requested preview language is not supported, returns the default site language instead.- Parameters:
httpRequest- current requestpreviewDataModel- the preview data model- Returns:
- LanguageModel the filtered language for previewing
-
setFallbackLanguage
protected void setFallbackLanguage(javax.servlet.http.HttpServletRequest httpRequest, Boolean enabled) Enables or disables language fall back- Parameters:
httpRequest- current requestenabled- enabled or disabled
-
generatePreviewUrl
protected String generatePreviewUrl(javax.servlet.http.HttpServletRequest httpRequest, PreviewDataModel previewDataModel) Generates target URL accordingly to valid Preview Data passed as a parameter- Parameters:
httpRequest- current requestpreviewDataModel- valid data model contains all necessary information- Returns:
- target URL
-
getCurrentCmsSite
-
getPreviewDataModelUrlResolver
Retrieves current mapping handler in order to generate proper target URL for CMS Page- Returns:
- current mapping handler
-
setPreviewDataModelUrlResolver
public void setPreviewDataModelUrlResolver(UrlResolver<PreviewDataModel> previewDataModelUrlResolver) -
getCmsSiteService
-
setCmsSiteService
-
getSessionService
-
setSessionService
-
getCmsPreviewService
-
setCmsPreviewService
-
getCommerceCommonI18NService
-
setCommerceCommonI18NService
-
getBaseSiteService
-
setBaseSiteService
-
getContextInformationLoader
-
setContextInformationLoader
-
getCmsPageContextService
-
setCmsPageContextService
-
getSiteChannelValidationStrategy
-
setSiteChannelValidationStrategy
public void setSiteChannelValidationStrategy(SiteChannelValidationStrategy siteChannelValidationStrategy)
-