Issue + patch filed: https://issues.apache.org/bugzilla/show_bug.cgi?id=49083
<https://issues.apache.org/bugzilla/show_bug.cgi?id=49083>-nikita On Fri, Apr 9, 2010 at 7:36 AM, sebb <[email protected]> wrote: > On 09/04/2010, Nikita Tovstoles <[email protected]> wrote: > > Shoot - maybe I am missing something - that code path only gets executed > > when 'redirect automatically' is unchecked and 'follow redirects' is > > checked. Reading the user manual, I guess that's what one'd want... > > Yes - "redirect automatically" is done by the HTTP implementation so > JMeter never sees it. > > > On Thu, Apr 8, 2010 at 9:26 PM, Nikita Tovstoles < > [email protected] > > > > > wrote: > > > > > Attached, please find a trunk patch that > > > introduces ConversionUtils.removeSlashDotDot(url) method called > > > from HttpSamplerBase.followRedirects(HTTPSampleResult, int) only. > There's > > > also a unit test. > > > > > > There's no switch because a) I wasn't sure where to add one b) no unit > > > tests failed. If that's absolutely required and other folks have no > cycles > > > to add such as switch do let me know and I'll see what I can do (or I > should > > > say when). Otherwise, let me know if anything else's required to > accept the > > > patch. > > > > > > -nikita > > > > > > > > > > > > > > > On Thu, Apr 8, 2010 at 8:39 AM, Nikita Tovstoles < > > > [email protected]> wrote: > > > > > >> Wicket renders *relative* URLs leading with '../' in CSS, image links > (and > > >> possibly anchors). However, in this case the problem is with absolute > URLs > > >> containing '/../'. Those are created during redirects only because: > > >> > > >> - wicket issues a redirect to a *relative* url starting with '../' > > >> - Tomcat, before writing out a response, rewrites the URL as > absolute > > >> - w/o collapsing the path. See encodeRedirectURL here: > > >> > http://kickjava.com/src/org/apache/catalina/connector/Response.java.htm > > >> > > >> I'll take a stab at collapsing the URL > > >> in HttpSamplerBase.followRedirects(HTTPSampleResult, int) > > >> > > >> -nikita > > >> > > >> > > >> On Wed, Apr 7, 2010 at 10:53 AM, sebb <[email protected]> wrote: > > >> > > >>> On 07/04/2010, Nikita Tovstoles <[email protected]> wrote: > > >>> > Hello, > > >>> > > > >>> > I need JMeter to rewrite absolute URLs containing '/../' For > example, > > >>> major > > >>> > browsers & wget, given: > > >>> > > > >>> > http://www.google.com/products/ . . / products > > >>> > (spaces added to avoid SPAM filtering) > > >>> > > > >>> > will actually send HTTP GET for > > >>> > > > >>> > http://www.google.com/products/ > > >>> > > > >>> > JMeter 2.3.4 appears to send the initial URL verbatim, which > results > > >>> in a > > >>> > 404 if pointed against a vanilla Tomcat. > > >>> > > > >>> > We're using Wicket and URLs similar to the above are very common > > >>> (Wicket > > >>> > issues redirects like the above). I saw discussions from a couple > of > > >>> months > > >>> > ago wrt whose responsibility it is to normalize the URL and read > the > > >>> RFC. I > > >>> > understand positions on either side, but, unfortunately, do > really > > >>> need to > > >>> > load test our app asap ;- > > >>> > > > >>> > So, I am happy to fork JMeter locally, if needed. If the above > indeed > > >>> > requires a code change in JMeter (or HttpClient?) could someone > please > > >>> > respond with a hint as to where specifically I should look in > src? > > >>> > > >>> The method is > > >>> > > >>> org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(URL > u, > > >>> String method, boolean areFollowingRedirect, int depth) > > >>> > > >>> This is abstract, and is overridden by various samplers, including: > > >>> > > >>> org.apache.jmeter.protocol.http.sampler.HTTPSampler.sample(URL url, > > >>> String method, boolean areFollowingRedirect, int frameDepth) > > >>> > > >>> org.apache.jmeter.protocol.http.sampler.HTTPSampler2.sample(URL url, > > >>> String method, boolean areFollowingRedirect, int frameDepth) > > >>> > > >>> However, if you want to just fix redirects, this could be done in > > >>> > > >>> HttpSamplerBase.followRedirects(HTTPSampleResult, int) > > >>> > > >>> Note that JMeter 2.3.4 already allows for relative links starting > with > > >>> ../ > > >>> See https://issues.apache.org/bugzilla/show_bug.cgi?id=46690. > > >>> > > >>> JMeter could be enhanced to allow such URL fixing as an option. > > >>> Changing it unconditionally could break some test scripts. > > >>> > > >>> BTW, are these dotty URLs used anywhere apart from redirects? > > >>> > > >>> > thanks > > >>> > > > >>> > -nikita > > >>> > > > >>> > > --------------------------------------------------------------------- > > >>> > To unsubscribe, e-mail: > [email protected] > > >>> > For additional commands, e-mail: > [email protected] > > >>> > > > >>> > > > >>> > > >>> > --------------------------------------------------------------------- > > >>> To unsubscribe, e-mail: [email protected] > > >>> For additional commands, e-mail: > [email protected] > > >>> > > >>> > > >> > > >> > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >

