private static String getFarthestUrlPrefix(final HttpServletRequest servletRequest) { final String farthestRequestScheme = HstRequestUtils.getFarthestRequestScheme(servletRequest); final String farthestRequestHost = HstRequestUtils.getFarthestRequestHost(servletRequest, false); return farthestRequestScheme + "://" + farthestRequestHost; }
private String getResourcePath(HttpServletRequest request) { String path = null; // if hstRequest is retrieved, then this servlet has been dispatched by hst component. HstRequest hstRequest = HstRequestUtils.getHstRequest(request); if (hstRequest != null) { path = hstRequest.getResourceID(); } if (path == null) { path = HstRequestUtils.getRequestPath(request); } if (path != null && !path.startsWith("/") && path.indexOf(':') > 0) { path = path.substring(path.indexOf(':') + 1); } return path; }
public HstContainerURL parseURL(HttpServletRequest request, ResolvedMount mount, String requestPath, Map<String, String []> queryParams) { return parseURL(mount, request.getContextPath(), requestPath, queryParams, HstRequestUtils.getCharacterEncoding(request), HstRequestUtils.getURIEncoding(request)); }
public HstContainerURL parseURL(HttpServletRequest request, HttpServletResponse response, ResolvedMount resolvedMount) { HstContainerURLImpl url = new HstContainerURLImpl(); url.setContextPath(request.getContextPath()); url.setHostName(HstRequestUtils.getFarthestRequestHost(request)); url.setPortNumber(HstRequestUtils.getRequestServerPort(request)); url.setRequestPath(HstRequestUtils.getRequestPath(request)); url.setCharacterEncoding(HstRequestUtils.getCharacterEncoding(request)); String uriEncoding = HstRequestUtils.getURIEncoding(request); url.setURIEncoding(uriEncoding); try { Map<String, String[]> paramMap = HstRequestUtils.parseQueryString(request); url.setParameters(paramMap); } catch (UnsupportedEncodingException e) { if (log.isDebugEnabled()) { log.warn("Unsupported encoding in request, using empty query parameters:", e); } else { log.warn("Unsupported encoding in request, using empty query parameters: " + e.toString()); } } url.setResolvedMountPath(resolvedMount.getResolvedMountPath()); url.setPathInfo(request.getPathInfo()); parseRequestInfo(url); return url; }
public HstContainerURL parseURL(HttpServletRequest request, HttpServletResponse response, ResolvedSiteMount resolvedSiteMount) { HstContainerURLImpl url = new HstContainerURLImpl(); url.setContextPath(request.getContextPath()); url.setHostName(HstRequestUtils.getFarthestRequestHost(request)); url.setPortNumber(HstRequestUtils.getRequestServerPort(request)); url.setRequestPath(HstRequestUtils.getRequestPath(request)); String characterEncoding = request.getCharacterEncoding(); if (characterEncoding == null) { characterEncoding = "ISO-8859-1"; } url.setCharacterEncoding(characterEncoding); Map<String, String []> paramMap = HttpUtils.parseQueryString(request); url.setParameters(paramMap); url.setResolvedMountPath(resolvedSiteMount.getResolvedMountPath()); String [] namespacedPartAndPathInfo = splitPathInfo(resolvedSiteMount, request, characterEncoding); url.setPathInfo(namespacedPartAndPathInfo[1]); parseRequestInfo(url,namespacedPartAndPathInfo[0]); return url; }
/** * Returns the original host's server name requested by the client. * @param request * @return */ public static String getRequestServerName(HttpServletRequest request) { String requestHost = getFarthestRequestHost(request); if (requestHost == null) { return request.getServerName(); } int offset = requestHost.indexOf(':'); if (offset != -1) { return requestHost.substring(0, offset); } else { return requestHost; } }
String hostName = getFarthestRequestHost(containerRequest); String ip = getFarthestRemoteAddr(containerRequest); if (vHosts.isDiagnosticsEnabled(ip)) { rootTask = HDC.start(HstDelegateeFilterBean.class.getSimpleName()); String renderingHost = getRenderingHost(containerRequest); if (renderingHost != null) { requestContext.setRenderHost(renderingHost); final String farthestRequestScheme = getFarthestRequestScheme(req); urlWithExplicitSchemeForRequest = createURLWithExplicitSchemeForRequest(hstSiteMapItem.getScheme(), resolvedSiteMapItem.getResolvedMount().getMount(), req); log.debug("Scheme not allowed: MOVED PERMANENTLY {} to {}", containerRequest, urlWithExplicitSchemeForRequest); res.setHeader("Location", urlWithExplicitSchemeForRequest); urlWithExplicitSchemeForRequest = createURLWithExplicitSchemeForRequest(hstSiteMapItem.getScheme(), resolvedSiteMapItem.getResolvedMount().getMount(), req); log.debug("Scheme not allowed: MOVED TEMPORARILY {} to {}", containerRequest, urlWithExplicitSchemeForRequest); res.sendRedirect(urlWithExplicitSchemeForRequest); urlWithExplicitSchemeForRequest = createURLWithExplicitSchemeForRequest(mount.getScheme(), mount, req); log.debug("MOVED PERMANENTLY {} to {}", containerRequest, urlWithExplicitSchemeForRequest); res.setHeader("Location", urlWithExplicitSchemeForRequest); urlWithExplicitSchemeForRequest = createURLWithExplicitSchemeForRequest(mount.getScheme(), mount, req); log.debug("MOVED TEMPORARILY {} to {}", containerRequest, urlWithExplicitSchemeForRequest); res.sendRedirect(urlWithExplicitSchemeForRequest);
if(vHosts == null || vHosts.isExcluded(HstRequestUtils.getRequestPath(req))) { chain.doFilter(request, response); return; if (mount == null) { try { mount = vHosts.matchSiteMount(HstRequestUtils.getFarthestRequestHost(req), req.getContextPath() , HstRequestUtils.getRequestPath(req)); if(mount != null) { requestContext.setResolvedSiteMount(mount); throw new MatchException("No matching SiteMount for '"+HstRequestUtils.getFarthestRequestHost(req)+"' and '"+req.getRequestURI()+"'"); logger.warn(HstRequestUtils.getFarthestRequestHost(req)+"' and '"+req.getRequestURI()+"' could not be processed by the HST: {}" , e.getMessage()); res.sendError(HttpServletResponse.SC_NOT_FOUND); return; if(resolvedSiteMapItem == null) { logger.warn(HstRequestUtils.getFarthestRequestHost(req)+"' and '"+req.getRequestURI()+"' could not be processed by the HST: Error resolving request to sitemap item"); res.sendError(HttpServletResponse.SC_NOT_FOUND); return; logger.warn(HstRequestUtils.getFarthestRequestHost(req)+"' and '"+req.getRequestURI()+"' could not be processed by the HST: No hstSite and no custom namedPipeline for SiteMount"); res.sendError(HttpServletResponse.SC_NOT_FOUND);
String queryString = getQueryString(HstRequestUtils.getURIEncoding(servletRequest), parametersMap, removedParametersList); pathInfo += queryString; } catch (UnsupportedEncodingException e) { final HstSiteMapItem hstSiteMapItem = pathResolvesTo.getHstSiteMapItem(); if (!hstSiteMapItem.isSchemeAgnostic()) { final String farthestRequestScheme = HstRequestUtils.getFarthestRequestScheme(servletRequest); if (!farthestRequestScheme.equals(hstSiteMapItem.getScheme())) { if (port == 0) { port = HstRequestUtils.getRequestServerPort(servletRequest);
/** * Processes the <CODE>defineObjects</CODE> tag. * @return <CODE>SKIP_BODY</CODE> */ public int doStartTag() throws JspException { HttpServletRequest servletRequest = (HttpServletRequest) pageContext.getRequest(); HttpServletResponse servletResponse = (HttpServletResponse) pageContext.getResponse(); HstRequest hstRequest = HstRequestUtils.getHstRequest(servletRequest); HstResponse hstResponse = HstRequestUtils.getHstResponse(servletRequest, servletResponse); // set attribute hstRequest setAttribute(hstRequest, "hstRequest"); // set attribute hstResponse setAttribute(hstResponse, "hstResponse"); return SKIP_BODY; }
protected void releaseSession(HttpServletRequest request, Session session) { // if hstRequest is retrieved, then this servlet has been dispatched by hst component. HstRequest hstRequest = HstRequestUtils.getHstRequest(request); if (hstRequest == null) { try { session.logout(); } catch (Exception e) { } } }
@Override public int doEndTag() throws JspException{ try { HstURL url = getUrl(); if (url == null) { throw new IllegalStateException("internal error: url not set"); } url.setResourceID(getResourceId()); setUrlParameters(url); HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); // properly encoding urls to allow non-cookie enabled sessions - ref.) PLUTO-252 String urlString = response.encodeURL(url.toString()); if (escapeXml) { urlString = doEscapeXml(urlString); } HstRequestContext requestContext = HstRequestUtils.getHstRequestContext((HttpServletRequest) pageContext.getRequest()); if (mustURLBeFullyQualified(requestContext)) { urlString = HstRequestUtils.getFullyQualifiedHstURL(requestContext, url, true); } TagUtils.writeOrSetVar(urlString, var, pageContext, scope); return EVAL_PAGE; } finally { cleanup(); } }
private String getEncoding(final HstRequestContext requestContext) { return HstRequestUtils.getURIEncoding(requestContext.getServletRequest()); }
final String farthestRequestScheme = HstRequestUtils.getFarthestRequestScheme(requestContext.getServletRequest()); if (siteMapItem != null && siteMapItem.isPresent()) { if (siteMapItem.get().isSchemeAgnostic()) {
HstRequestContext reqContext = HstRequestUtils.getHstRequestContext(servletRequest); urlString = HstRequestUtils.escapeXml(urlString);
@Override public void processWindowBeforeRender(HstComponentWindow window, HstRequest request, HstResponse response) { HstRequestContext requestContext = request.getRequestContext(); HstURL compUrl = createAsyncComponentRenderingURL(request, response); String url = HstRequestUtils.getFullyQualifiedHstURL(requestContext, compUrl, false); Element esiElem = response.createElement("esi:include"); esiElem.setAttribute("src", url); esiElem.setAttribute("onerror", "continue"); response.addPreamble(esiElem); }
HttpServletRequest servletRequest = (HttpServletRequest) pageContext.getRequest(); HttpServletResponse servletResponse = (HttpServletResponse) pageContext.getResponse(); HstResponse hstResponse = HstRequestUtils.getHstResponse(servletRequest, servletResponse);
public HstServletResponseState(HttpServletRequest request, HttpServletResponse response) { super(request, response); this.response = response; HstRequestContext requestContext = HstRequestUtils.getHstRequestContext(request); isActionResponse = (requestContext.getBaseURL().getActionWindowReferenceNamespace() != null); isResourceResponse = (requestContext.getBaseURL().getResourceWindowReferenceNamespace() != null); isRenderResponse = (!this.isActionResponse && !this.isResourceResponse); isStateAwareResponse = isActionResponse; isMimeResponse = isRenderResponse || isResourceResponse; }
public String getBaseURL(HttpServletRequest request) { StringBuilder builder = new StringBuilder(); String scheme = this.getScheme(); if (scheme == null) { scheme = "http"; } String serverName = HstRequestUtils.getFarthestRequestHost(request); builder.append(scheme); builder.append("://").append(serverName); return builder.toString(); }
@Override public int doEndTag() throws JspException { try { final HttpServletRequest servletRequest = (HttpServletRequest) pageContext.getRequest(); final HttpServletResponse servletResponse = (HttpServletResponse) pageContext.getResponse(); final HstRequest hstRequest = HstRequestUtils.getHstRequest(servletRequest); final HstResponse hstResponse = HstRequestUtils.getHstResponse(servletRequest, servletResponse); if (hstRequest == null || hstResponse == null) { return EVAL_PAGE; } return doEndTag(hstRequest, hstResponse); } finally { cleanup(); } }