Zoltán Kornél Török created NIFI-14477:
------------------------------------------

             Summary: Nifi throws error for api calls which perform throught 
knox proxy
                 Key: NIFI-14477
                 URL: https://issues.apache.org/jira/browse/NIFI-14477
             Project: Apache NiFi
          Issue Type: Bug
    Affects Versions: 2.3.0
            Reporter: Zoltán Kornél Török
            Assignee: Zoltán Kornél Török
             Fix For: 2.4.0


*Problematic scenario*

Our system work behind a knox proxy, where we perform nifi api calls. When we 
do, nifi return back an error (in this example we want to create a process 
group):
{code:java}
Caused by: org.springframework.web.client.HttpClientErrorException$Conflict: 
409 Conflict: [Node 
ztorok-test-dfx-2-nifi-2-datahub-nifi1.ztorok-t.svbr-nqvp.int.cldr.work:8443 is 
unable to fulfill this request due to: {
"message":"Transfer-Encoding and Content-Length",
"url":"https://ztorok-test-dfx-2-nifi-2-datahub-nifi1.ztorok-t.svbr-nqvp.int.cldr.work:8443/nifi-api/process-groups/root/process-groups";,
"status":"400"
}]  {code}
If the same request go directly to a nifi node, we didn't experienced any 
problem.

*What cause this problem?*
This problem happens, because the jetty library perform some compliance 
validation for every http request before process it. Http protocol not allow it 
that Transfer-encoding and content-length both present on the http request, but 
older http clients violate that rule, and that is happening when knox connect 
to nifi too.

Related jetty code: 
[https://github.com/jetty/jetty.project/blob/jetty-12.0.x/jetty-core/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java#L1104]
 

*Proposed solution*

Jetty give us option to configure compliance options - 
[https://jetty.org/docs/jetty/12/programming-guide/server/compliance.html] 

I would like to introduce a new nifi property, where users can able to 
configure compliance, if they needed. Default that property would be empty, 
which means nifi use the jetty provided default compliance (currently it is 
RFC7230).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to