Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[mod_proxy] AJAX calls worden dubbel ge-URL encoded

Pagina: 1
Acties:

  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 26-11 12:22
Ik heb een applicatieserver (SonarQube) achter een Apache reverse proxy geplaatst maar zit nu met het probleem dat na het inloggen de gebruiker op het login scherm blijft staan. Als de gebruiker daarna zelf naar de pagina root navigeerd krijgt deze een parse error te zien van een timestamp waarde.

Na wat onderzoek met de browser debugger zie ik dat het probleem te maken heeft met een AJAX call die een date/time waarde bevat die dubbel wordt ge-URL encode. Ik heb flink wat forum posts gevonden en alle resultaten (oa link) verwijzen me dat ik twee dingen moet doen om dit op te lossen:
- "AllowEncodedSlashes On" toevoegen aan de vhost config
- "nocanon" appenden aan de ProxyPass directive

Mijn huidige config is nu:
code:
1
2
3
4
5
6
7
8
9
    #Sonar
    AllowEncodedSlashes On
    <Location /sonar/>
        ProxyPreserveHost On
        ProxyPass http://172.16.0.127/sonar/ nocanon
        ProxyPassReverse https://public-domain/sonar/
        Order Allow,Deny
        Allow from 213.46.
    </Location>


Maar desondanks is de request header via de proxy nog steeds fout:
Afbeeldingslocatie: http://i.imgur.com/AGgGV6w.png

code:
1
2
3
4
5
6
7
8
9
10
GET /sonar/api/l10n/index/?locale=en_US&ts=2015-10-21T11%253A10%253A36%252B0000 HTTP/1.1
Host: appsysdev.upc.biz
Connection: keep-alive
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36
Referer: https://public-domain/sonar/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: JSESSIONID=29C85B97F4757AA4BE272ECC70EABF4F


De fout zit hem in ts=2015-10-21T11%253A10%253A36%252B0000
1x URL decode: ts=2015-10-21T11%3A10%3A36%2B0000
2x URL decode: ts=2015-10-21T11:10:36+0000

De request header van de AJAX call als ik de server rechtstreeks benader:
code:
1
2
3
4
5
6
7
8
9
10
GET /sonar/api/l10n/index?locale=en_US&ts=2015-10-21T11%3A11%3A35%2B0000 HTTP/1.1
Host: 172.16.0.127
Connection: keep-alive
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36
Referer: http://172.16.0.127/sonar/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: JSESSIONID=85E5FA61FD00C5F1600A11092C9B9EC7


Ik heb Apache geupgrade naar de laatste versie (2.4.17) maar het probleem blijft bestaan. Kan iemand mij verder helpen?