stevens-silva opened a new issue, #8507:
URL: https://github.com/apache/hop/issues/8507

   Apache Hop version?
   2.19.0
   
   Java version?
   OpenJDK 21.0.12
   
   Operating system
   Windows (also affects AlmaLinux production, same behavior)
   
   What happened?
   
   After upgrading from Hop 2.17 (Java 17) to 2.19 (Java 21), a REST Client 
transform calling a third-party API (Omie ERP, 
https://app.omie.com.br/api/v1/geral/clientes/, POST with JSON body) started 
failing with HTTP 500. The same pipeline worked without changes on 2.17/Java 17.
   
   The response body is a generic gateway-style fault, not the API's normal 
JSON error format:
   
   <?xml version="1.0" encoding="UTF-8"?>
   <env:Envelope 
xmlns:env="http://www.w3.org/2003/05/soap-envelope";><env:Body><env:Fault><env:Code><env:Value>env:Sender</env:Value></env:Code><env:Reason><env:Text>Bad
 Request</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
   
   I methodically ruled out every application-layer difference between the Hop 
request and a working Postman/curl request, using the Detailed log level's new 
"Request sent" block (very useful, thank you for that feature) to see exactly 
what Hop sent:
   
   Request body: byte-for-byte identical JSON to the one that works in Postman
   Content-Type: tested both application/json and application/json; 
charset=UTF-8 — no change
   Accept: tested both application/json and */* — no change
   User-Agent: tested overriding the default Apache-HttpClient/5.6.4 
(Java/21.0.12) to Mozilla/5.0 — no change
   Tested via a REST Connection metadata object instead of a hardcoded URL 
(including toggling "Ignore SSL certificate check") — same 500, same body
   A different REST Client transform in the same pipeline, hitting a different 
third-party API, works normally — so this isn't a blanket regression of the 
transform, TLS stack, or network path
   The exact same request, run via curl from the same machine, same network, 
same credentials, succeeds with 200 OK
   
   Given all of the above, the difference is not visible at the HTTP 
request-line/header/body level and is most likely something at the TLS layer 
(ClientHello/cipher suite/ALPN — i.e. a "TLS fingerprint") that changed with 
the Apache HttpClient5 + Java 21 combination introduced in 2.19, which the 
target API's gateway is treating as anomalous and rejecting before it reaches 
the application layer.
   
   Steps to reproduce
   
   Set up a REST Client transform: POST, Application type: JSON, Body field 
pointing to a valid JSON payload, hitting an endpoint sitting behind a strict 
API gateway/WAF (Omie's API in this case)
   Run on Hop 2.19 with Java 21 → HTTP 500 gateway fault
   Send the identical request via curl from the same machine → HTTP 200
   (If possible) Run the same pipeline on Hop 2.17 with Java 17 → works
   
   Additional context
   This may be related to the REST client work done for 2.19 (Rest client 
improvements) and/or the httpclient5 version bump in plugins/misc/rest. Happy 
to provide the full Detailed log (headers/body sanitized) or a minimal 
reproducible pipeline if useful.
   
   Issue Priority
   Priority: 2


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to