/** * Process the url to add hdiv state if it is necessary. * * @param request {@link RequestContextHolder} object * @param url url to process * @return processed url */ public String processUrl(final RequestContextHolder request, final String url) { // Default encoding UTF-8 return this.processUrl(request, url, Constants.ENCODING_UTF_8); }
/** * Adds parameters of <code>url</code> to <code>request</code>. * @param request HTTP Servlet Request * @param url Url to process */ private void addParametersToRequestWrapper(final HttpServletRequest request, final String url) { RequestWrapper requestWrapper = HDIVUtil.getNativeRequest(request, RequestWrapper.class); if (requestWrapper != null) { LinkUrlProcessor linkUrlProcessorForForward = HDIVUtil.getLinkUrlProcessor(pageContext.getSession().getServletContext()); RequestContextHolder holder = HDIVUtil.getRequestContext(request); UrlData urlData = linkUrlProcessorForForward.createUrlData(url, Method.GET, holder.getHdivParameterName(), holder); Map<String, String[]> urlParamsAsMap = linkUrlProcessorForForward.getUrlParamsAsMap(holder.getHdivParameterName(), new StringBuilder(128), urlData.getUrlParams()); for (Map.Entry<String, String[]> entry : urlParamsAsMap.entrySet()) { requestWrapper.addParameter(entry.getKey(), entry.getValue()); } } }
@Bean public LinkUrlProcessor linkUrlProcessor() { LinkUrlProcessor linkUrlProcessor = new LinkUrlProcessor(); linkUrlProcessor.setConfig(hdivConfig()); return linkUrlProcessor; }
RequestContextHolder requestContext = HDIVUtil.getRequestContext(request); String hdivParameter = requestContext.getHdivParameterName(); UrlData urlData = linkUrlProcessor.createUrlData(url, Method.GET, hdivParameter, requestContext); if (urlData.isHdivStateNecessary(config)) { url = linkUrlProcessor.getProcessedUrl(dataComposer.getBuilder(), urlData); url = linkUrlProcessor.getProcessedUrlWithHdivState(dataComposer.getBuilder(), hdivParameter, urlData, stateParam); component.setValue(url);
UrlData urlData = createUrlData(url, Method.GET, hdivParameter, request); if (urlData.isHdivStateNecessary(config)) { url = getProcessedUrlWithHdivState(dataComposer.getBuilder(), hdivParameter, urlData, stateParam);
private UrlDataImpl create(final String url) { return (UrlDataImpl) linkUrlProcessor.createUrlData(url, Method.GET, getRequestContext().getHdivParameterName(), getMockRequest()); }
public void testGetProcessedUrlWithHdivState() { UrlData urlData = create(url); String stateParam = "1-12-123123123123"; String urlProcessed = linkUrlProcessor.getProcessedUrlWithHdivState(new StringBuilder(), getRequestContext().getHdivParameterName(), urlData, stateParam); assertEquals(urlWithoutUriTemplate + "?_HDIV_STATE_=" + stateParam + uriTemplate.replace("?", "&"), urlProcessed); }
RequestContextHolder requestContext = HDIVUtil.getRequestContext(request); String hdivParameter = requestContext.getHdivParameterName(); UrlData urlData = linkUrlProcessor.createUrlData(url, Method.GET, hdivParameter, requestContext); if (urlData.isHdivStateNecessary(config)) {
LinkUrlProcessor urlProcessor = HDIVUtil.getLinkUrlProcessor(servletContext); String processUrl = urlProcessor.processUrl(request, "/user/home"); return "redirect:"+processUrl;
UrlData urlData = linkUrlProcessorForForward.createUrlData(uri, Method.GET, holder.getHdivParameterName(), holder); Map<String, String[]> urlParamsAsMap = linkUrlProcessorForForward.getUrlParamsAsMap(holder.getHdivParameterName(), new StringBuilder(128), urlData.getUrlParams()); for (Map.Entry<String, String[]> entry : urlParamsAsMap.entrySet()) {
@Deprecated public final String processUrl(final HttpServletRequest request, final String url, final String encoding) { return processUrl(HDIVUtil.getRequestContext(request), url, encoding); }
@Deprecated public final String processUrl(final HttpServletRequest request, final String url) { return processUrl(HDIVUtil.getRequestContext(request), url); }
/** * Checks that url needs to be securized (points to the application itself) and if so creates HDIV state and adds the identifier as a * parameter to the url. * * @param url Url to secure * @return secured url */ public String addHDIVStateToURL(final String url) { FacesContext context = FacesContext.getCurrentInstance(); HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest(); return linkUrlProcessor.processUrl(HDIVUtil.getRequestContext(request), url); }
public String processUrl(final RequestContextHolder request, String url) { if (request == null) { return url; } if (innerRequestDataValueProcessor != null) { @SuppressWarnings("deprecation") String processedUrl = innerRequestDataValueProcessor.processUrl(request.getRequest(), url); if (processedUrl != null) { url = processedUrl; } } return linkUrlProcessor.processUrl(request, url); }
/** * Redirect to the given path converting exceptions to JspException. * @param path The path to redirect to. * @throws JspException * @since Struts 1.2 */ @Override protected void doRedirect(String path) throws JspException { HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); try { if (path.startsWith("/")) { path = request.getContextPath() + path; } // generate a new encoded values for the url parameters // Call to Hdiv LinkUrlProcessor if (linkUrlProcessor == null) { linkUrlProcessor = HDIVUtil.getLinkUrlProcessor(request.getSession().getServletContext()); } String urlHDIVstate = linkUrlProcessor.processUrl(HDIVUtil.getRequestContext(request), path); String encodedURL = response.encodeRedirectURL(urlHDIVstate); response.sendRedirect(encodedURL); } catch (Exception e) { TagUtils.getInstance().saveException(pageContext, e); throw new JspException(messages.getMessage("forward.redirect", name, e.toString())); } }
public void testJavaScriptLinks() { HttpServletRequest request = getMockRequest(); String url = "javascript:performAction(this);"; String result = linkUrlProcessor.processUrl(request, url); assertEquals(url, result); url = "JavaScript:performAction(this);"; result = linkUrlProcessor.processUrl(request, url); assertEquals(url, result); url = "javaScript:performAction(this);"; result = linkUrlProcessor.processUrl(request, url); assertEquals(url, result); }
public void testProcessActionStartPageWithParams() { HttpServletRequest request = getMockRequest(); String url = "/testing.do?param=value"; // is a startPage String result = linkUrlProcessor.processUrl(request, url); assertEquals(url, result); url = "/onlyget.do?param=value"; // is a startPage only in Get requests result = linkUrlProcessor.processUrl(request, url); assertEquals(url, result); url = "/onlypost.do?param=value"; // is a startPage only in POST requests result = linkUrlProcessor.processUrl(request, url); assertTrue(result.startsWith("/onlypost.do?param=0&_HDIV_STATE_=")); }
public void testProcessActionStartPage() { HttpServletRequest request = getMockRequest(); String url = "/testing.do"; // is a startPage String result = linkUrlProcessor.processUrl(request, url); assertEquals(url, result); url = "/onlyget.do"; // is a startPage only in Get requests result = linkUrlProcessor.processUrl(request, url); assertEquals(url, result); url = "/onlypost.do"; // is a startPage only in POST requests result = linkUrlProcessor.processUrl(request, url); startsWith(result, "/onlypost.do?_HDIV_STATE_="); }
public void testParamsSameName() { HttpServletRequest request = getMockRequest(); String url = "/link.html?one.name=ACEPTED&one.name=ACEPTED_NO"; String result = linkUrlProcessor.processUrl(request, url); assertTrue(result.startsWith("/link.html?one.name=0&one.name=1&_HDIV_STATE_=")); url = "/link.html?one.name=ACEPTED_NO&one.name=ACEPTED"; result = linkUrlProcessor.processUrl(request, url); assertTrue(result.startsWith("/link.html?one.name=0&one.name=1&_HDIV_STATE_=")); }
/** * Gets the right value, encodes it, and prints or stores it */ @Override public int doEndTag() throws JspException { String result; // the eventual result // add (already encoded) parameters String baseUrl = UrlSupport.resolveUrl(url, context, pageContext); result = params.aggregateParams(baseUrl); // if the URL is relative, rewrite it with 'redirect' encoding rules HttpServletResponse response = (HttpServletResponse) pageContext.getResponse(); if (!UrlUtil.isAbsoluteUrl(result)) { result = response.encodeRedirectURL(result); } // Call to HDIV LinkUrlProcessor linkUrlProcessor = HDIVUtil.getLinkUrlProcessor(pageContext.getServletContext()); result = linkUrlProcessor.processUrl(HDIVUtil.getRequestContext(pageContext.getRequest()), result); // redirect! try { response.sendRedirect(result); } catch (java.io.IOException ex) { throw new JspTagException(ex.toString(), ex); } return SKIP_PAGE; }