Interface VirtualHost

All Known Subinterfaces:
MutableVirtualHost

public interface VirtualHost
VirtualHost which holds the mapping between host (server name) and site name.
  • Method Details

    • getHostName

      String getHostName()
      The hostName of this VirtualHost. Note that this hostName might contain wildcards, for example www.onehippo.*
      Returns:
      The composite hostName of this VirtualHost, thus including parent VirtualHosts if present
    • getName

      String getName()
      Returns the name of this VirtualHost. Note, this is not the hostName, but only part of it. If the hostName is www.apache.org, then the name of this VirtualHost might be 'www' or 'apache' or 'org'. It can thus be one segment of the entire hostName or is get be www.apache.org which is also possible
      Returns:
      The name of this VirtualHost. Note, this is only part of the entire hostName
      See Also:
    • getHostGroupName

      String getHostGroupName()
      Returns the name of host group this virtual host belongs to, for example 'prod', 'acct' or 'dev'
      Returns:
      the name of the host group this VirtualHost belongs to.
    • getLocale

      String getLocale()
      the locale for this VirtualHost or null when it does not contain one. Note that if an ancestor VirtualHost contains a locale, this value is inherited unless this VirtualHost explicitly defines its own. The VirtualHost directly below the VirtualHosts inherits the value from the VirtualHosts
      Returns:
      the locale for this VirtualHost or null when it does not contain one.
    • getChildHost

      VirtualHost getChildHost(String name)
      Parameters:
      name - the name segment of the hostname
      Returns:
      the child VirtualHost or null if none found
    • getChildHosts

      List<VirtualHost> getChildHosts()
      Returns:
      the list of all VirtualHost childs of this VirtualHost
    • getPortMount

      PortMount getPortMount(int portNumber)
      Parameters:
      portNumber -
      Returns:
      the
    • getVirtualHosts

      VirtualHosts getVirtualHosts()
      Returns:
      the VirtualHosts container of this VirtualHost
    • isContextPathInUrl

      boolean isContextPathInUrl()
      Returns:
      true when the created url should have the contextpath in it
    • getContextPath

      String getContextPath()

      Returns the contextpath (webapp) for all the Mounts below this VirtualHost.

      Returns:
      Returns the contextpath (webapp) for all the Mounts below this VirtualHost. The contextpath for the ROOT application must be an empty String. If non-empty, a path starting with a "/" character but that does not end with a "/" character must be returned. It is not allowed to return null
      See Also:
    • isPortInUrl

      boolean isPortInUrl()
      Returns:
      true when the created url should have the port in it
    • getScheme

      String getScheme()
      Returns:
      the scheme to use for creating external urls, for example http / https
    • isSchemeAgnostic

      boolean isSchemeAgnostic()
      If a VirtualHost is scheme agnostic, the request gets served regardless whether it is http or https (assuming Mount and HstSiteMapItem do not override the value)
      Returns:
      true when this VirtualHost is scheme agnostic
    • getSchemeNotMatchingResponseCode

      int getSchemeNotMatchingResponseCode()

      the response code the HST sets when HttpServletRequest scheme does not match getScheme(). Default response code is HttpServletResponse.SC_MOVED_PERMANENTLY. The following response codes are supported and result in:

      1. 200 : no behavior, ignored
      2. 301 : when request has different scheme than getScheme(), permanent redirect to the correct scheme is done
      3. 302 | 303 | 307 : when request has different scheme than getScheme(), temporal redirect to the correct scheme is done
      4. 403 : when request has different scheme than getScheme(), a page forbidden is returned
      5. 404 : when request has different scheme than getScheme(), a page not found is returned

      Any other response code than above will result in inheriting the response code from parent VirtualHost or VirtualHosts

    • getHomePage

      String getHomePage()
      Returns:
      the homepage for this virtual host or null when not present
    • getBaseURL

      String getBaseURL(jakarta.servlet.http.HttpServletRequest request)
      Returns the base of the URL as seen by for example a browser. The base URL is consists of scheme + hostname + portnumber for example 'http://www.hippoecm.org:8081' The scheme is 'http' by default, unless getScheme() returns something else The hostname is the HttpServeltRequest request.getServerName() (proxies must have ProxyPreserveHost On) The portnumber is as follows:
      • when #isPortVisible() is false, there is no portnumber
      • otherwise:
        • port = #getPortNumber()
        • if (port == 0) {port = request.getServerPort()}
        • if(port == 80 && "http".equals(scheme)) || (port == 443 && "https".equals(scheme)): no portnumber will be in baseUrl
      Parameters:
      request - the HttpServletRequest
      Returns:
      the URL until the context path, thus scheme + hostname + portnumber, for example 'http://www.hippoecm.org:8081'
    • getPageNotFound

      String getPageNotFound()
      Returns:
      the pagenotfound for this Mount or null when not present
    • isVersionInPreviewHeader

      boolean isVersionInPreviewHeader()
      Returns:
      whether the version of the HST is in the header of the preview
    • isCacheable

      boolean isCacheable()
      Returns:
      true if rendering / resource requests can have their entire page http responses cached.
    • getDefaultResourceBundleIds

      String[] getDefaultResourceBundleIds()
      Returns:
      default resource bundle IDs for all sites below this virtualhost to use, for example { "org.example.resources.MyResources" }. Returns empty array when not configured on this VirtualHost and empty from ancestor VirtualHost or when root host from VirtualHosts.getDefaultResourceBundleIds()
    • getCdnHost

      String getCdnHost()
      Returns:
      null or empty String in case no cdn host is used and otherwise the cdn host to be used for URLs to sitemap items that have HstSiteMapItem#isContainerResource() = true. Preferred format for a cdn host is //hostname so it piggybacks on the scheme of the current request. Starting with http/https is allowed but is not preferred
    • getHstLinkUrlPrefix

      String getHstLinkUrlPrefix()

      Returns the 'HST Link URL prefix' in case one is configured

      Returns:
    • isCustomHttpsSupported

      boolean isCustomHttpsSupported()
      Returns:
      true if this VirtualHost allows a HttpServletRequest over https to be rendered while the matched HstSiteMapItem or Mount indicates through getScheme() the request should be http
    • getResponseHeaders

      Map<String,String> getResponseHeaders()

      Return a non-null unmodifiable map of the configuration values of HTTP Response headers which should be set in any responses by the requests on this. They keys from the returned map are the header names.

      Note that the header names returned by this method overwrites any already set headers during request processing with the same name

      Returns:
      a non-null unmodifiable map of the configuration values of HTTP Response headers which should be set in any responses by the requests on this.
    • getAllowedOrigins

      Collection<String> getAllowedOrigins()

      Returns all the allowed origins for this VirtualHost

      Returns:
      unmdifiable collection of the allowed origins for this virtualhost used in case of a CORS OPTIONS request, if no allowed origins specified, the parent virtual host its allowed origins will be used and if there is no parent an empty list will be returned.