The Oracle ATG Web Commerce installation provides the following SiteContextRuleFilter
components for identifying a site:
RequestParameterRuleFilter: Evaluates query parameters that supply the site ID and specify whether that site should persist for the remainder of the current session.
URLPatternMatchingRuleFilter: Encapsulates rules for obtaining a site ID from the request URL.
DefaultSiteRuleFilter: Returns the server’s default site ID.
RequestParameterRuleFilter
Based on the class atg.multisite.PushedSiteParamFilter
, the component /atg/multisite/RequestParameterRuleFilter
is the first rule filter to execute. This filter processes request query parameters that set the current site, and specify it as a sticky site that persists throughout the session of that request. This filter is typically useful for testing and previewing sites that are under development; it should be disabled for production sites.
RequestParameterRuleFilter
checks the request URL for these query parameters:
pushSite
is set to a site ID, which is returned by the rule filter’sfilter()
method.stickySite
, if set tosetSite
, makes thepushSite
-specified site sticky for the current session. Unless explicitly reset or unset, the sticky site is used for all subsequent requests during that session.pushRealm
is set to a profile realm ID. It sets the profile realm context for the duration of the request. See Profile Realm Context Management.
A sticky site remains valid for the current session until another request URL sets one of the following query parameters:
pushSite
specifies another site ID, which becomes the current site. IfstickySite
is also set tosetSite
, thisSiteContext
becomes the new sticky site.stickySite
is set tounsetSite
. This unsets the sticky site, and theRequestParameterRuleFilter
returns null. TheSiteContextPipelineServlet
executes subsequent rule filters in itsruleFilters
property until one returns a valid site.
RequestParameterRuleFilter
is enabled through two properties:
enabled
specifies whether the filter is active within the filter chain. If set tofalse
,SiteContextPipelineServlet
skips over this filter when processing a request. By default, this property is set totrue
.enableStickySite
disables sticky site functionality if set tofalse
. The filter remains active and supports use of thepushSite
query parameter; it ignores thestickySite
query parameter. By default, this property is set tofalse
.Note: Sticky site functionality is always enabled on preview servers through the
SiteURLManager
propertyautoAppendStickySiteParams
. For more about theSiteURLManager
, see Multisite URL Management later in this chapter.
If desired, you can change the names of the query parameters that RequestParameterRuleFilter
expects by setting these properties:
stickySiteParamName
Note: Changing these properties on an asset management or preview server might disrupt preview functionality.
URLPatternMatchingRuleFilter
Based on the class atg.multisite.SiteContextRuleFilter
, the filter component /atg/multisite/URLPatternMatchingRulefilter
encapsulates rules for obtaining a site ID from a request URL. The filter implements two algorithms for determining the site ID:
Looks up the request URL in a map that is set in the filter’s
URLs
property, which pairs URLs with site IDs. If the URL maps to a virtual context room, thegetPatternMatchingURLForRequest
method returns the portion of the URL containing the domain, port an servlet path.The
URLs
property setting lets a specific server substitute URL-to-site mappings that are otherwise set and managed by theSiteURLManager
. This is generally useful for testing purposes, and is not typically used in a production environment.Passes the request URL to the method
SiteURLManager.getSiteIdForURL()
. This method obtains a site ID from the Multisite URL Management system, described elsewhere in this chapter.
Several Boolean properties determine whether the URLPatternMatchingRuleFilter
is enabled and how it executes:
Property | Description |
---|---|
| The filter is enabled. |
| Use the |
| Pass the request URL to the |
By default, all properties are set to true
.
URLPatternMatchingRuleFilter
also checks the request for the context parameter atg.multisite.URLPatternMatchingEnabled
, which the application’s web.xml
file can set to true
or false
. If the parameter is set to false
, the filter does not execute and returns null to the SiteContextPipelineServlet
. If web.xml
omits this context parameter, the URLPatternMatchingRuleFilter
behaves as if it were set to true
.
DefaultSiteRuleFilter
Based on the class atg.multisite.DefaultSiteContextRuleFilter
, the component /atg/multisite/DefaultSiteRuleFilter
is configured by a single property, defaultSiteId
, which identifies the server’s default site ID. This filter executes after all filters that are specified in the ruleFilters
property execute, and only if none of them returns a site ID.