// context also acts as a short term request cache for the
// selected page and built menus; however, creating the
// request context here does not select the page or build
// menus: that is done when the request context is
// accessed subsequently
PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators, principal.getName(), requestFallback, useHistory);
request.setAttribute(PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY, requestContext);
// additionally save request context under legacy key
// to support existing decorator access
request.setAttribute(PROFILED_PAGE_CONTEXT_ATTR_KEY, requestContext);