/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.server.service.servlet; import javax.servlet.http.HttpServletRequest; import org.springframework.web.util.UrlPathHelper; import com.enonic.cms.core.Attribute; public class OriginalUrlResolver { public static String buildOriginalUrl( HttpServletRequest req ) { final UrlPathHelper urlPathHelper = new UrlPathHelper(); urlPathHelper.setDefaultEncoding( "UTF-8" ); final StringBuilder url = new StringBuilder(); url.append( req.getScheme() ).append( "://" ); url.append( req.getServerName() ); final int serverPort = req.getServerPort(); if ( serverPort != 80 ) { url.append( ":" ).append( serverPort ); } final String originatingUri = urlPathHelper.getOriginatingRequestUri( req ); url.append( originatingUri ); final String originatingQueryString = urlPathHelper.getOriginatingQueryString( req ); if ( originatingQueryString != null && !"".equals( originatingQueryString ) ) { url.append( "?" ).append( originatingQueryString ); } return url.toString(); } public static void resolveOriginalUrl( final HttpServletRequest req ) { // resolve and set original url if not set if ( req.getAttribute( Attribute.ORIGINAL_URL ) == null ) { final String originalUrl = buildOriginalUrl( req ); req.setAttribute( Attribute.ORIGINAL_URL, originalUrl ); } } }