public Mount getMount(HstRequest request){ return getResolvedMount(request).getMount(); }
private ResolvedMount decoratedResolvedMount(final ResolvedMount resolvedMount) { if (resolvedMount == null) { return null; } if (!(resolvedMount instanceof MutableResolvedMount)) { String msg = String.format("Resolved mount '%s' expected to be a MutableResolvedMount but was not.", resolvedMount.getMount().toString()); throw new IllegalStateException(msg); } ((MutableResolvedMount)resolvedMount).setMount(decorateMountAsPreview(resolvedMount.getMount())); return resolvedMount; } }
/** * Get the {@link Mount} for the current */ protected Mount getMount(final HstRequest request){ return request.getRequestContext().getResolvedMount().getMount(); }
@Override public boolean isPreview() { checkStateValidity(); return this.resolvedMount.getMount().isPreview(); }
@Override public VirtualHost getVirtualHost() { checkStateValidity(); return resolvedMount.getMount().getVirtualHost(); }
public boolean isPreview() { checkStateValidity(); return this.resolvedMount.getMount().isPreview(); }
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 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(); }
@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(); } }
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 String getSiteContentBasePath() { checkStateValidity(); checkMatchingPhaseFinished("getSiteContentBasePath"); return PathUtils.normalizePath(getResolvedMount().getMount().getContentPath()); }
public Credentials getWritableCredentials(HstRequestContext requestContext) { Credentials credentials = super.getWritableCredentials(requestContext); if (credentials instanceof SimpleCredentials) { String siteName = requestContext.getResolvedSiteMapItem().getResolvedMount().getMount().getHstSite().getName(); String userID = ((SimpleCredentials) credentials).getUserID(); String userIDWithSiteName = userID + siteNameSeparator + siteName; char [] password = ((SimpleCredentials) credentials).getPassword(); credentials = writableCredentialsCache.get(userIDWithSiteName); if (credentials == null) { credentials = new SimpleCredentials(userIDWithSiteName, password); writableCredentialsCache.put(userIDWithSiteName, credentials); } } return credentials; } }
/** * 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); }
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)); } } } }