I have a 'x-client-cert' header in the request but when the request is proxied to fastapi from nginx the /n and /t in the header is somehow getting removed. This fastapi is acting as a BFF (Backend For Frontend) and the backend is a django rest application. When the request is proxied to the django rest backend without BFF /n and /t are however present.
I have a middlewares in fast api apllication. One is CORS middleware and other is a middleware for HMAC authentication. Both cases does not modify the headers. The problem is that tried loggin the hedear at the first of the middlweare but the fast api is even receiving the x-client-header in the wrong format.
Tried logging both the cases from the django backend server.
When the request reaches the backend through the fast api BFF the header is as:'X-Client-Cert': '-----BEGIN CERTIFICATE----- MIICpjCCAY6gAwIBAQIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdtYW5h Z2luMB4XDTI0MDMxMTEyMTcyN1oXDTM0MDMwOTEyMTcyN1owGzEZMBcGA1UEAwwQ NDdRbWM1QXRxdTNEU2dINjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB ANShTgdCld8w6lnZR94END5RTKKEOQf0CZfgSJuG1rG+ZBKvkHAxzjYKNzgYPunM oiuz610+t1AdWhPhOetEFtgJPj7Fq0BtDN1CcM5wYGAE8nQEUnjOTOqSeAvJouwZ 4WJ0n/9EgEqxRm2BYBW0lTMag0z27mcGebtFGqVcNZ5wqZlEVZ+Rhgv/jvcmtbKi wFKSqRlAJRmiPdABnLDAKQA66CboUlFiZUIsU2hE9AEYaV0ERGux5RAaVtdaY3ns 8O905NG38dQ2tZXXKi+xF0s8MeazzP9TC4+s2sAAt6/70oktlNklxCT9TrvrAYA1 QrRxPuCTtx86k3WJ7rq43o0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALPfxLfZz JA7ZpWu8B7rzaHW2fptA5sV1162Cv+xdYE62g3N5hcoxrsJiBfVTvhj8p0fCyn8i UhLF4aGLzx86vqgh/Iqo4D+5nO/R9YhZgnYpVa2gO0nsvuTIl1aOzQqs1h/kfJas /uAWiUBfXFEFr5N1awhlPZZhtbObscwWD48IV+VBaA6MWA/HbiADt96Y/QnStsei BPIgDeEM5SPiMr7sCGVfYXqmBI2O2PvZoQjvN8UzH75cGixm4SNq/Jyy+4bELH2o RIFzbutIws7wUvMz9Q+36sO67UF3tgHMfrGFHni9fnM2nUjf+dCLdxQdw1+6xYoz iEQuCvcLLwBlkA== -----END CERTIFICATE-----'
When the request reaches the backend directly from nginx without BFF:'X-Client-Cert': '-----BEGIN CERTIFICATE-----\n\tMIICpjCCAY6gAwIBAQIBATANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdtYW5h\n\tZ2luMB4XDTI0MDMwMTA4MjgyM1oXDTM0MDIyNzA4MjgyM1owGzEZMBcGA1UEAwwQ\n\tTmlhZktKQVJFcEVpUnJoQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\n\tAOeIvMR8rQ0Wo6YBuuNyZsu2gkGd3g6Wpa4Ee3mrkf4rKPovHdpGVahSlzf+jDJ0\n\tRwcUJwwI6r+y+SbWr3xO2mb4AvcUXaMdTDlrSQndJK5NKTlfxZ6wGioRMTlPYTXr\n\t1dqedMJMkwr28vZtSmq64KQZOfiTLfSByTfBzkuU+OYSsZsmUpSlYkNvwpLi2kqu\n\tui0SBp6l1tHqd1K4DZOBZXjUl00azS8dLqN5dcD7XsZtJ907BaI0pvr4SRfb4tOH\n\t/GuTTpnH9ciAQxAsnS4OGlmAeFBjUM0iWQJnpVa/Eq7JcOaSqOKfC4ac3a4BriCP\n\tGPUWXSqeaDgV8h9ePW0B6z0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALymkKDVK\n\tGkQWGaSq8js0MqO6JYoPjg4tHOgBbxk9PfQZGCv9zFt+8wxlcjePRAk1FNKzUhUR\n\txudF6wBrfVJyhmwa/sci5VTokxB/O8DfHwJGPoUPwNHLdthcd9U6AlKBOKIM8pDL\n\ta3BcJqKlwfOIJbMQ3I9S682iM1lck7uEHrqDLzJrbKDvT1+45SJk2sngbIpgzAJk\n\tjtvjr5xBS5NCTCvKSgvBvmDkEipG7MHRl5ytXq7v2fHgavjldqD/7oFbj5Hs9wCq\n\tZsBbcNQzlqhqhJAnZZFevlrJ+nB8liFP+XwkKPdrHoBMUsDGwJ4r8lmEsYae/mgF\n\tzz5bLPJfi7Hbhg==\n\t-----END CERTIFICATE-----'.
As mentioned also tried printing the header in the fastapi BFF. The BFF receives the header without any /n or /t.The requests are proxied from nginx. From where does this formatting happen.