Ticket #412 (closed defect: fixed)

Opened 2 years ago

Last modified 18 months ago

Translogger uses REMOTE_ADDR even when HTTP_X_FORWARDED_FOR is present

Reported by: sgala Owned by: ianb
Priority: normal Milestone: 1.4.1
Component: paste Version: svn-trunk
Severity: normal Keywords:
Cc:

Description

When paste is transparently proxied, REMOTE_ADDR is always the proxy address. If the HTTP_X_FORWARDED_FOR header is present, it indicates the original client address. The following patch solves it in a transparent way (if HTTP_X_FORWARDED_FOR is not present it falls back on REMOTE_ADDR)

$ diff -u translogger.py.orig /usr/share/pyshared/paste/translogger.py --- translogger.py.orig 2010-03-13 13:09:54.549933880 +0100 +++ /usr/share/pyshared/paste/translogger.py 2010-03-13 12:23:05.461932856 +0100 @@ -79,7 +79,7 @@

elif offset < 0:

offset = "%0.4d" % (offset)

d = {

- 'REMOTE_ADDR': environ.get('REMOTE_ADDR') or '-', + 'REMOTE_ADDR': environ.get('HTTP_X_FORWARDED_FOR') or environ.get('REMOTE_ADDR') or '-',

'REMOTE_USER': environ.get('REMOTE_USER') or '-', 'REQUEST_METHOD': method, 'REQUEST_URI': req_uri,

Change History

Changed 18 months ago by ianb

  • status changed from new to closed
  • resolution set to fixed

Fixed in 1468:ff0c9426f93d

Note: See TracTickets for help on using tickets.