ATG Servlet Pipeline

Page request Process :

Each request is rendering through DAF Pipeline in ATG. 
  • DynamoHandler is the first servlet in the request servlet pipeline chain. PageFilter will start DAF servlet pipeline by calling DynamoHandler. PageFilter has been configured in web.xml to handle jsp requests.
  <filter>
                 <filter-name>PageFilter</filter-name>
                 <filter-class>atg.filter.dspjsp.PageFilter</filter-class>
          </filter>
          <filter-mapping>
                 <filter-name>PageFilter</filter-name>
                 <url-pattern>*.jsp</url-pattern>
         </filter-mapping>

  • DynamoHandler : It converts HttpRequest and HttpResponse to DynamoHttpRequest and DynamoHttpResponse.

  • SiteContextPilelineServlet : Evaluate the site identity in Multisite environment. 
          If Site is not multisite, set SiteContextPilelineServlet.enabled=false.

          For Multisite, SiteContextPilelineServlet  performs below tasks :
  1. Derives a site Id from request URL
  2. Determine site information is avaliable for request.
  3. Passes Site Id to SiteContextManager and SiteSessionManager.
  • PathAuthenticationServlet : provides username and password authentication for authenticators path.Example : For getting access of /File/Location, We need to provide TestUser as username and TestPassword as password.
enabled=true
authenticators=\
                  /File/Location=/application/auth/TruthPassword

         TruthPassword.properties
                $class=atg.servlet.pipeline.BasicAuthenticator
                passwords=\
                       TestUser=TestPassword

  • DynamoServlet : Sets various properties to DynamoHttpServletRequest.

  • ProtocolSwitchServlet : perform switching between a secure and non secure server. It is having secureList and ignoreList. Contains URL Mapping. Getting secureHostName and nonSecureHostName from /atg/dynamo/Configuration.

  • ProfileRequestServlet : creates an instance of the atg/userprofiling/Profile component. If profile doesn't exits, It creates a transient RepositoryItem. To presists anonymous profiles in DB, set  ProfileRequestServlet.persistentAnonymousProfiles=true

  • ProfilePropertyServlet : Sets properties on profile. Default property sets are : 
  1. /atg/userprofiling/SiteProfilePropertySetter
  2. /atg/userprofiling/CatalogProfilePropertySetter
  3. /atg/userprofiling/PriceListProfilePropertySetter
  • SessionEventTrigger: determines the session. If New, fires a StartSession event. If Expired, fires a EndSession event. Registers itself as a listener in the SessionManager, nameContextBindingListeners property.
  1. Session Expire Time is set to the sessionInvalidationTime property of /atg/dynamo/servlet/session/SessionManager. By Default it is 30 minutes.
  2. To avoid these session expiration errors, We used the CheckSessionExpiration servlet, an instance of the class atg.projects.b2bstore.servlet.WACheckSessionExpiration. It passes the expired session user to the URL set to relativeExpirationURL property.

    • AccessControlServlet : verifies profiles is permitted or not to view requested URL.

    • DAFDropletEventServlet : responsible to call setXXX / handleXXX in case of form is submitted.

    • TailPipelineServlet : Last servlet in request servlet pipeline.  It is responsible for calling FilterChain.doFilter(), which invokes the next filter defined in web.xml.

    With ATG-Endeca Integration, one of the options for querying the Oracle Endeca Assembler and MDEX engine is invoking the Assembler via a servlet as part of Oracle ATG’s request handling pipeline. This is the AssemblerPipelineServlet.

    • AssemblerPipelineServlet
    It takes the URL and based on the URL, it decides whether it can handle the request or it has to pass it on. By default, the AssemblerPipelineServlet component passes all known MIME types and only executes for a null MIME type. If there is no extension, AssemblerPipelineServlet calls the Endeca Assembler. Endeca Assmebler will now talk to the Experience Manager and Experience Manager will assemble the contents based on the rules.
    To disable this servlet set AssemblerPipelineServlet.enabled=false

    No comments :