private static String getDecodedPath(ResolvedSiteMount resSiteMount, HttpServletRequest request, String characterEncoding, boolean stripMountPath) { String encodePathInfo = request.getRequestURI().substring(request.getContextPath().length()); if(stripMountPath) { encodePathInfo = encodePathInfo.substring(resSiteMount.getResolvedMountPath().length()); } if (characterEncoding == null) { characterEncoding = request.getCharacterEncoding(); if (characterEncoding == null) { characterEncoding = "ISO-8859-1"; } } try { return URLDecoder.decode(encodePathInfo, characterEncoding); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException("Invalid character encoding: " + characterEncoding, e); } }
public String toContextRelativeURLString(HstContainerURL containerURL, HstRequestContext requestContext) throws UnsupportedEncodingException, ContainerException { StringBuilder url = new StringBuilder(100); String mountPrefix = requestContext.isEmbeddedRequest() ? requestContext.getResolvedEmbeddingSiteMount().getResolvedMountPath() : containerURL.getResolvedMountPath(); if(mountPrefix != null) { url.append(mountPrefix); } String pathInfo = buildHstURLPath(containerURL); url.append(pathInfo); return url.toString(); }
public HstContainerURL parseURL(HttpServletRequest request, ResolvedSiteMount mount, String requestPath) { HstContainerURLImpl url = new HstContainerURLImpl(); url.setContextPath(request.getContextPath()); url.setHostName(mount.getResolvedVirtualHost().getResolvedHostName()); url.setPortNumber(mount.getResolvedVirtualHost().getPortNumber()); url.setResolvedMountPath(mount.getResolvedMountPath()); url.setRequestPath(requestPath); url.setPathInfo(requestPath.substring(mount.getResolvedMountPath().length())); String characterEncoding = request.getCharacterEncoding(); if (characterEncoding == null) { characterEncoding = "ISO-8859-1"; } url.setCharacterEncoding(characterEncoding); return url; }
log.debug("Found ResolvedSiteMount is '{}' and the mount prefix for it is :", resolvedSiteMount.getResolvedMountPath());
@Override public void invoke(ValveContext context) throws ContainerException { try { MethodUtils.invokeStaticMethod(busFactoryClass, "setThreadDefaultBus", new Object[] { bus }); HttpServletRequest request = context.getServletRequest(); ResolvedSiteMount resolvedSiteMount = context.getRequestContext().getResolvedSiteMount(); String servletPath = resolvedSiteMount.getResolvedMountPath(); String pathInfo = HstRequestUtils.getPathInfo(resolvedSiteMount, request); HttpServletRequest adjustedRequest = new PathsAdjustedHttpServletRequestWrapper(context.getServletRequest(), servletPath, pathInfo); MethodUtils.invokeMethod(servletController, "invoke", new Object[] { adjustedRequest, context.getServletResponse() }); } catch (Exception e) { if (log.isDebugEnabled()) { log.error("Failed to invoke jaxrs service.", e); } else { log.error("Failed to invoke jaxrs service. {}", e.toString()); } } finally { try { MethodUtils.invokeStaticMethod(busFactoryClass, "setThreadDefaultBus", new Object[] { null }); } catch (Exception ignore) { } } }
public HstContainerURL parseURL(HstRequestContext requestContext, ResolvedSiteMount mount, String requestPath) { HstContainerURLImpl url = new HstContainerURLImpl(); HstContainerURL baseURL = requestContext.getBaseURL(); url.setContextPath(baseURL.getContextPath()); url.setHostName(baseURL.getHostName()); url.setPortNumber(baseURL.getPortNumber()); url.setResolvedMountPath(mount.getResolvedMountPath()); url.setRequestPath(requestPath); String [] namespacedPartAndPathInfo = splitPathInfo(requestPath.substring(mount.getResolvedMountPath().length()), baseURL.getCharacterEncoding()); url.setPathInfo(namespacedPartAndPathInfo[1]); parseRequestInfo(url,namespacedPartAndPathInfo[0]); url.setCharacterEncoding(baseURL.getCharacterEncoding()); return url; }
path.append(prc.getResolvedEmbeddingSiteMount().getResolvedMountPath()); path.append(pathInfo); urlString = path.toString();
protected String resolveEmbeddedDispatchURL(PortletRequest request, PortletResponse response) { HstPortalContextProvider pcp = getPortalContextProvider(request); HstPortalRequestContext prc = pcp != null ? pcp.getPortalRequestContext(request) : null; ResolvedSiteMapItem rsmi = prc != null ? prc.getResolvedSiteMapItem() : null; HstComponentConfiguration hcc = rsmi != null ? rsmi.getHstComponentConfiguration() : null; if (hcc != null) { HstMutablePortletRequestContext hrc = createHstRequestContext(request, response); hrc.setTargetComponentPath(request.getPreferences().getValue(HST_COMPONENT_PATH, defaultHstComponentPath)); hrc.setEmbeddingContextPath(prc.getEmbeddingContextPath()); hrc.setResolvedEmbeddingSiteMount(prc.getResolvedEmbeddingSiteMount()); hrc.setResolvedSiteMount(rsmi.getResolvedSiteMount()); hrc.setResolvedSiteMapItem(rsmi); return new StringBuilder(rsmi.getResolvedSiteMount().getResolvedMountPath()).append("/").append(rsmi.getPathInfo()).toString(); } return null; } }
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; }