farazive opened a new issue, #6093:
URL: https://github.com/apache/jmeter/issues/6093

   ### Expected behavior
   
   JMeter should be able to follow redirects that contain full URLS as route 
parameters. For instance, a HTTP 302 such as 
   ```
   Location: https://example.com/host/https://test.com
   ```
   should make JMeter go to the actual URL 
"https://example.com/host/https://test.com";. JMeter is stripping a slash after 
`/host/https:` and ends up following 
`https://example.com/host/https:/test.com`. When the backend server at 
example.com receives the route parameter for `host`, it gets `https:/test.com` 
instead of the expected `https://test.com`
   
   ### Actual behavior
   
   jmeter.log file attached: 
[jmeter.log](https://github.com/apache/jmeter/files/13110715/jmeter.log)
   
   JTL file attached: 
[test.txt](https://github.com/apache/jmeter/files/13110724/test.txt)
   
   JMX file attached: 
[testjmx.txt](https://github.com/apache/jmeter/files/13110729/testjmx.txt)
   
   
   ### Steps to reproduce the problem
   
   ### The Bug
   
   When following redirects which contain `https://` in the URL's path like the 
example below:
   
   
`https://ela1.s-ela.elmodev.com/oauth2-client/anon/check-authcode/host/https://ela1.elmodev.com/?state={redacted}&code={redacted}`
   
   where the path contains the text `host/https://ela1.elmodev.com/`
   
   JMeter strips a slash after "https:" and the actual call it makes is
   
   ```
   2023-10-24 15:46:48,795 DEBUG o.a.h.wire: http-outgoing-3 >> "GET 
/oauth2-client/anon/check-authcode/host/https:/ela1.elmodev.com/?state={redacted}&code={redacted}
 HTTP/1.1[\r][\n]"
   ```
   `host/https://ela1.elmodev.com/` is converted into 
`host/https:/ela1.elmodev.com/` which is a malformed URL.
   
   You can see that in the the logs at "ALL" level, collected from GUI below as 
well:
   
   ```
   2023-10-24 15:46:48,793 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: 
Connection [id: 2][route: {s}->https://ela1.elmodev.com:443][state: Login TMS 
Thread Group 1-1] can be kept alive indefinitely
   2023-10-24 15:46:48,793 DEBUG o.a.h.i.c.DefaultManagedHttpClientConnection: 
http-outgoing-2: set socket timeout to 0
   2023-10-24 15:46:48,793 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: 
Connection released: [id: 2][route: {s}->https://ela1.elmodev.com:443][state: 
Login TMS Thread Group 1-1][total available: 1; route allocated: 1 of 2; total 
allocated: 1 of 20]
   2023-10-24 15:46:48,793 DEBUG o.a.j.p.h.s.HTTPHC4Impl: 
ResponseHeadersSize=635 Content-Length=5 Total=640
   2023-10-24 15:46:48,793 DEBUG o.a.j.p.h.s.HTTPSamplerBase: Initial location: 
https://ela1.s-ela.elmodev.com/oauth2-client/anon/check-authcode/host/https://ela1.elmodev.com/?state=redacted&code=redacted
   2023-10-24 15:46:48,793 DEBUG o.a.j.p.h.s.HTTPSamplerBase: Location after /. 
and space transforms: 
https://ela1.s-ela.elmodev.com/oauth2-client/anon/check-authcode/host/https://ela1.elmodev.com/?state=redacted&code=redacted
   2023-10-24 15:46:48,793 DEBUG o.a.j.p.h.s.HTTPSamplerBase: Location as URL: 
https://ela1.s-ela.elmodev.com/oauth2-client/anon/check-authcode/host/https://ela1.elmodev.com/?state=redacted&code=redacted
   2023-10-24 15:46:48,793 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Start : sample 
https://ela1.s-ela.elmodev.com/oauth2-client/anon/check-authcode/host/https://ela1.elmodev.com/?state=redacted&code=redacted
 method GET followingRedirect true depth 0
   2023-10-24 15:46:48,793 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Reusing the 
HttpClient: @660347056 https://ela1.s-ela.elmodev.com
   2023-10-24 15:46:48,793 DEBUG o.a.j.p.h.c.HC4CookieHandler: Found 1 cookies 
for 
https://ela1.s-ela.elmodev.com/oauth2-client/anon/check-authcode/host/https://ela1.elmodev.com/?state=redacted&code={redacted}
   2023-10-24 15:46:48,794 DEBUG o.a.j.p.h.s.HTTPHC4Impl: Found user 
token:Login TMS Thread Group 1-1 as JMeter variable:__jmeter.U_T__, storing it 
in HttpContext
   2023-10-24 15:46:48,794 DEBUG o.a.h.c.p.RequestAddCookies: CookieSpec 
selected: default
   2023-10-24 15:46:48,794 DEBUG o.a.h.c.p.RequestAddCookies: Unsupported 
cookie policy: default
   2023-10-24 15:46:48,794 DEBUG o.a.h.c.p.RequestAuthCache: Auth cache not set 
in the context
   2023-10-24 15:46:48,794 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: 
Connection request: [route: {s}->https://ela1.s-ela.elmodev.com:443][state: 
Login TMS Thread Group 1-1][total available: 1; route allocated: 1 of 2; total 
allocated: 1 of 20]
   2023-10-24 15:46:48,794 DEBUG o.a.h.i.c.PoolingHttpClientConnectionManager: 
Connection leased: [id: 3][route: 
{s}->https://ela1.s-ela.elmodev.com:443][state: Login TMS Thread Group 
1-1][total available: 0; route allocated: 1 of 2; total allocated: 1 of 20]
   2023-10-24 15:46:48,794 DEBUG o.a.h.i.c.DefaultManagedHttpClientConnection: 
http-outgoing-3: set socket timeout to 0
   2023-10-24 15:46:48,794 DEBUG o.a.h.i.e.MainClientExec: Executing request 
GET 
/oauth2-client/anon/check-authcode/host/https:/ela1.elmodev.com/?state=redacted&code={redacted}
 HTTP/1.1
   2023-10-24 15:46:48,794 DEBUG o.a.h.i.e.MainClientExec: Target auth state: 
UNCHALLENGED
   2023-10-24 15:46:48,794 DEBUG o.a.h.i.e.MainClientExec: Proxy auth state: 
UNCHALLENGED
   2023-10-24 15:46:48,794 DEBUG o.a.h.headers: http-outgoing-3 >> GET 
/oauth2-client/anon/check-authcode/host/https:/ela1.elmodev.com/?state=redacted&code=redacted
 HTTP/1.1
   2023-10-24 15:46:48,794 DEBUG o.a.h.headers: http-outgoing-3 >> Connection: 
keep-alive
   2023-10-24 15:46:48,794 DEBUG o.a.h.headers: http-outgoing-3 >> Cookie: 
PHPSESSID=ebf36fee4874b757a2306915ee4746f7
   2023-10-24 15:46:48,794 DEBUG o.a.h.headers: http-outgoing-3 >> Host: 
ela1.s-ela.elmodev.com
   2023-10-24 15:46:48,794 DEBUG o.a.h.headers: http-outgoing-3 >> User-Agent: 
Apache-HttpClient/4.5.14 (Java/11.0.20.1)
   2023-10-24 15:46:48,795 DEBUG o.a.h.wire: http-outgoing-3 >> "GET 
/oauth2-client/anon/check-authcode/host/https:/ela1.elmodev.com/?state=redacted&code=redacted
 HTTP/1.1[\r][\n]"
   ```
   
   I have attached the JMX, JTL and jmeter.log files below but wasn't able to 
spot a malformed URL in the file contents but the behavior is the same in both 
GUI and non-GUI modes.
   
   ### JMeter Version
   
   5.6.2
   
   ### Java Version
   
   openjdk version "11.0.20.1" 2023-08-24
   
   ### OS Version
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@jmeter.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to