public ResolvedMount getResolvedMount(HstRequest request){ return request.getRequestContext().getResolvedMount(); }
/** * Get the {@link Mount} for the current */ protected Mount getMount(final HstRequest request){ return request.getRequestContext().getResolvedMount().getMount(); }
private static String getCmsLocationByPrefix(final HstRequestContext requestContext, final String prefix) throws ContainerException { final Mount mount = requestContext.getResolvedMount().getMount(); final List<String> cmsLocations = mount.getCmsLocations(); for (String cmsLocation : cmsLocations) { if (cmsLocation.startsWith(prefix)) { return cmsLocation; } } throw new ContainerException("Could not establish a SSO between CMS & site application because no CMS location could be found that starts with '" + prefix + "'"); }
public HstLink create(Node node, HstRequestContext requestContext, String mountAlias) { Mount targetMount = requestContext.getMount(mountAlias); if(targetMount == null) { Mount currentMount = requestContext.getResolvedMount().getMount(); StringBuffer types = new StringBuffer(); for(String type: currentMount.getTypes()) { if(types.length() > 0) { types.append(","); } types.append(type); } String[] messages = {mountAlias , currentMount.getVirtualHost().getHostGroupName(), types.toString()}; log.info("Cannot create a link for mountAlias '{}' as it cannot be found in the host group '{}' and one of the types '{}'", messages); return null; } log.debug("Target Mount found for mountAlias '{}'. Create link for target Mount", mountAlias); return create(node, targetMount); }
public Node getScope(final HttpServletRequest request) throws RepositoryException { HstRequestContext requestContext = getRequestContext(request); Mount siteMount = requestContext.getResolvedMount().getMount(); if (siteMount == null) { log.error("Couldn't find site mount for rest service"); return null; } String contentPath = siteMount.getContentPath(); if (contentPath != null) { return requestContext.getSession().getRootNode().getNode(PathUtils.normalizePath(contentPath)); } return null; }
private VirtualHost getCurrentVirtualHost() { return RequestContextProvider.get().getResolvedMount().getMount().getVirtualHost(); }
private String getChannelRootPath() { final ResolvedMount resolvedMount = RequestContextProvider.get().getResolvedMount(); return resolvedMount.getMount().getContentPath(); }
private void deleteBranches(final HstRequestContext requestContext, final Channel master) throws RepositoryException, HstConfigurationException { VirtualHost virtualHost = requestContext.getResolvedMount().getMount().getVirtualHost(); String hostGroupName = virtualHost.getHostGroupName(); Map<String, Channel> channels = virtualHost.getVirtualHosts().getChannels(hostGroupName); List<Channel> branches = channels.values().stream() // only the live channels since #delete(session, channel) will also delete the preview .filter(channel -> !channel.isPreview() && master.getId().equals(channel.getBranchOf())) .collect(Collectors.toList()); // remove the branches as well for (Channel branch : branches) { delete(requestContext.getSession(), branch.getHstConfigPath()); } }
private boolean schemeCannotBeDifferent() { final Mount requestMount = requestContext.getResolvedMount().getMount(); if (!mount.containsMultipleSchemes() && !requestMount.containsMultipleSchemes() && mount.getScheme().equals(requestMount.getScheme())) { return true; } return false; }
/** * Create a HstLinkResolver instance with the current <code>requestContext</code>. The {@link Mount} is taken from this context. If * we have a {@link ResolvedSiteMapItem} on the <code>requestContext</code>, we also set this also for the {@link HstLinkResolver} for context aware link rewriting * @param requestContext * @param node */ HstLinkResolver(Node node, HstRequestContext requestContext){ this.node = node; originalNodePath = getOriginalNodePath(node); // note: the resolvedSiteMapItem can be null resolverProperties = new ResolverProperties(); resolverProperties.resolvedSiteMapItem = requestContext.getResolvedSiteMapItem(); mount = requestContext.getResolvedMount().getMount(); }
public List<HstLink> createAll(final Node node, final HstRequestContext hstRequestContext, final boolean crossMount) { final Mount mount = hstRequestContext.getResolvedMount().getMount(); final String type = mount.getType(); final String hostGroupName = mount.getVirtualHost().getHostGroupName(); return createAll(node, hstRequestContext, hostGroupName, type, crossMount); }
@Override public void invoke(ValveContext context) throws ContainerException { HttpServletRequest servletRequest = (HttpServletRequest) context.getServletRequest(); HstRequestContext requestContext = (HstRequestContext) servletRequest.getAttribute(ContainerConstants.HST_REQUEST_CONTEXT); ResolvedMount resolvedMount = requestContext.getResolvedMount(); boolean subjectBasedSession = resolvedMount.isSubjectBasedSession(); boolean sessionStateful = resolvedMount.isSessionStateful(); if (subjectBasedSession) { if (requestContext.getSubject() == null) { log.debug("Subject based session cannot be set because no subject is found."); } else { // we could include the session userId in the cachekey, but instead we mark the // request as uncacheable for subjectbased request rendering markRequestUncacheable(context); setSubjectSession(context, requestContext, sessionStateful); } } context.invokeNext(); }
/** * Helper function for retrieving a value list by identifier, using the current context's locale. * * @param identifier of the (set of) value lists * @param context current request context * @return requested value list, or null if none was found */ public static ValueList getValueListByIdentifier(final String identifier, final HstRequestContext context) { final ValueListManager valueListManager = HstServices.getComponentManager().getComponent(ValueListManager.class.getName()); final HippoBean baseBean = context.getSiteContentBaseBean(); final Locale locale = LocaleUtils.toLocale(context.getResolvedMount().getMount().getLocale()); return valueListManager.getValueList(baseBean, identifier, locale); } }
public String getLink() { final HstRequestContext context = RequestContextProvider.get(); return context.getHstLinkCreator().create("/", context.getResolvedMount().getMount()).toUrlForm(context, true); }
protected void logDiagnosticSummary(final ValveContext context, final Task rootTask) { if (log.isInfoEnabled()) { final VirtualHosts virtualHosts = context.getRequestContext().getResolvedMount().getMount().getVirtualHost().getVirtualHosts(); final long threshold = virtualHosts.getDiagnosticsThresholdMillis(); if (threshold > -1) { // only log when threshold exceeded if (rootTask.getDurationTimeMillis() < threshold) { log.debug("Skipping task '{}' because took only '{}' ms.", rootTask.getName(), rootTask.getDurationTimeMillis()); return; } } final int diagnosticsDepth = virtualHosts.getDiagnosticsDepth(); final long unitThreshold = virtualHosts.getDiagnosticsUnitThresholdMillis(); log.info("Diagnostic Summary:\n{}", TaskLogFormatUtils.getTaskLog(rootTask, diagnosticsDepth, unitThreshold)); } }
/** * Read HTTP Response headers configuration from sitemapitem or mount and return those as a name-value paired map. * @param requestContext request context * @return a name-value paired map from HTTP Response headers configuration from sitemapitem or mount. */ private Map<String, String> getDefaultResponseHeaders(final HstRequestContext requestContext) { ResolvedSiteMapItem resolvedSiteMapItem = requestContext.getResolvedSiteMapItem(); if (resolvedSiteMapItem != null) { return resolvedSiteMapItem.getHstSiteMapItem().getResponseHeaders(); } else { ResolvedMount resolvedMount = requestContext.getResolvedMount(); if (resolvedMount != null) { return resolvedMount.getMount().getResponseHeaders(); } } return null; } }
public HstSiteMenuImpl(HstSiteMenus hstSiteMenus, HstSiteMenuConfiguration siteMenuConfiguration, HstRequestContext hstRequestContext) { this.hstSiteMenus = hstSiteMenus; this.name = siteMenuConfiguration.getName(); final boolean menuVisibleRegardlessRoles = hstRequestContext.isCmsRequest() && hstRequestContext.getResolvedMount().getMount().getVirtualHost().getVirtualHosts().isChannelMngrSiteAuthenticationSkipped(); for(HstSiteMenuItemConfiguration hstSiteMenuItemConfiguration : siteMenuConfiguration.getSiteMenuConfigurationItems()) { if (hstSiteMenuItemConfiguration.getRoles() == null || menuVisibleRegardlessRoles) { hstSiteMenuItems.add(new HstSiteMenuItemImpl(this, null, hstSiteMenuItemConfiguration , hstRequestContext)); } else { if (HstSiteMenuUtils.isUserInRole(hstSiteMenuItemConfiguration, hstRequestContext)) { hstSiteMenuItems.add(new HstSiteMenuItemImpl(this, null, hstSiteMenuItemConfiguration , hstRequestContext)); } } } }
@Override public void invoke(ValveContext context) throws ContainerException { context.getServletRequest().setAttribute(ContainerConstants.CMS_REST_REQUEST_CONTEXT, Boolean.TRUE); final HstRequestContext requestContext = context.getRequestContext(); ((HstMutableRequestContext) requestContext).setCmsRequest(true); // decorate the mount to a preview mount final ResolvedMount resolvedMount = requestContext.getResolvedMount(); requestContext.setAttribute(ContainerConstants.UNDECORATED_MOUNT, resolvedMount.getMount()); final Mount decoratedPreviewMount = mountDecorator.decorateMountAsPreview(resolvedMount.getMount()); ((MutableResolvedMount) resolvedMount).setMount(decoratedPreviewMount); context.invokeNext(); } }
@Override public Response call() throws Exception { final AbstractTreePickerRepresentation representation; if (StringUtils.isEmpty(siteMapItemRefIdOrPath)) { representation = representRequestContentNode(getPageComposerContextService()); } else { // find first the mount for current request HttpSession session = getPageComposerContextService().getRequestContext().getServletRequest().getSession(); String renderingHost = (String)session.getAttribute(ContainerConstants.RENDERING_HOST); final VirtualHost virtualHost = getPageComposerContextService().getRequestContext().getResolvedMount().getMount().getVirtualHost(); final Mount editingMount = getPageComposerContextService().getEditingMount(); final ResolvedMount resolvedMount = virtualHost.getVirtualHosts().matchMount(renderingHost, null, editingMount.getMountPath()); representation = representExpandedParentTree(getPageComposerContextService(),resolvedMount, siteMapItemRefIdOrPath); } return ok("Folder loaded successfully", representation); } });
/** * Add links to content bean model. * @param contentBeanModel content bean model */ private void addLinksToContent(final HstRequestContext requestContext, final HippoBeanWrapperModel contentBeanModel) { final HippoBean hippoBean = contentBeanModel.getBean(); if (!hippoBean.isHippoDocumentBean() && !hippoBean.isHippoFolderBean()) { return; } final Mount selfMount = requestContext.getResolvedMount().getMount(); final HstLink selfLink = requestContext.getHstLinkCreator().create(hippoBean.getNode(), selfMount); if (selfLink == null) { return; } contentBeanModel.putLink(LINK_NAME_SITE, LinkModel.convert(selfLink, requestContext)); }