HTTP_X_FORWARDED_FOR does not exist when using custom script #5694

Closed
opened 2025-12-29 19:31:33 +01:00 by adam · 4 comments
Owner

Originally created by @davama on GitHub (Nov 19, 2021).

Originally assigned to: @davama on GitHub.

NetBox version

v3.0.10

Python version

3.8

Steps to Reproduce

Background: https://github.com/netbox-community/netbox/discussions/7876

python snippet:

        remote_ip_address = self.request.META.get('HTTP_X_FORWARDED_FOR') or self.request.META.get('REMOTE_ADDR')
        self.log_info(f"Running as user {remote_username} (IP: {remote_ip_address})...")
        self.log_info(repr(self.request.META))

my nginx snippet:

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
	proxy_set_header X-Forwarded-For $remote_addr;
    }

Expected Behavior

{'CONTENT_LENGTH': '503', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryw66ayIoNmlX9BFq7', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.9', 'HTTP_HOST': '127.0.0.1:8001', 'HTTP_REFERER': 'https://netbox-lab.nwk.jwm2.net/extras/scripts/netbox.AddDevice/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'QUERY_STRING': '', 'REMOTE_ADDR': '127.0.0.1', 'REQUEST_METHOD': 'POST', 'SERVER_NAME': '127.0.0.1', 'SERVER_PORT': '8001', 'HTTP_X_FORWARDED_FOR': 'x.x.x.48'}

HTTP_X_FORWARDED_FOR should be present as nginx set it.

Observed Behavior

The above would give me the below output:

{'CONTENT_LENGTH': '503', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryPrHAvPRqa4n0y5Bn', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.9', 'HTTP_HOST': '127.0.0.1:8001', 'HTTP_REFERER': 'https://netbox.domain.com/extras/scripts/netbox.AddDevice/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'QUERY_STRING': '', 'REMOTE_ADDR': '127.0.0.1', 'REQUEST_METHOD': 'POST', 'SERVER_NAME': '127.0.0.1', 'SERVER_PORT': '8001'}
Originally created by @davama on GitHub (Nov 19, 2021). Originally assigned to: @davama on GitHub. ### NetBox version v3.0.10 ### Python version 3.8 ### Steps to Reproduce Background: https://github.com/netbox-community/netbox/discussions/7876 python snippet: ``` remote_ip_address = self.request.META.get('HTTP_X_FORWARDED_FOR') or self.request.META.get('REMOTE_ADDR') self.log_info(f"Running as user {remote_username} (IP: {remote_ip_address})...") self.log_info(repr(self.request.META)) ``` my nginx snippet: ``` location / { proxy_pass http://127.0.0.1:8001; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; } ``` ### Expected Behavior ``` {'CONTENT_LENGTH': '503', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryw66ayIoNmlX9BFq7', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.9', 'HTTP_HOST': '127.0.0.1:8001', 'HTTP_REFERER': 'https://netbox-lab.nwk.jwm2.net/extras/scripts/netbox.AddDevice/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'QUERY_STRING': '', 'REMOTE_ADDR': '127.0.0.1', 'REQUEST_METHOD': 'POST', 'SERVER_NAME': '127.0.0.1', 'SERVER_PORT': '8001', 'HTTP_X_FORWARDED_FOR': 'x.x.x.48'} ``` `HTTP_X_FORWARDED_FOR` should be present as nginx set it. ### Observed Behavior The above would give me the below output: ``` {'CONTENT_LENGTH': '503', 'CONTENT_TYPE': 'multipart/form-data; boundary=----WebKitFormBoundaryPrHAvPRqa4n0y5Bn', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.9', 'HTTP_HOST': '127.0.0.1:8001', 'HTTP_REFERER': 'https://netbox.domain.com/extras/scripts/netbox.AddDevice/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'QUERY_STRING': '', 'REMOTE_ADDR': '127.0.0.1', 'REQUEST_METHOD': 'POST', 'SERVER_NAME': '127.0.0.1', 'SERVER_PORT': '8001'} ```
adam added the type: bugstatus: accepted labels 2025-12-29 19:31:33 +01:00
adam closed this issue 2025-12-29 19:31:33 +01:00
Author
Owner

@davama commented on GitHub (Nov 19, 2021):

I have a PR ready to go.
But it mentions i need to create a bug first.
so here it is.

let me know how to proceed.
First PR with netbox 😄

Thank you!

@davama commented on GitHub (Nov 19, 2021): I have a PR ready to go. But it mentions i need to create a bug first. so here it is. let me know how to proceed. First PR with netbox :smile: Thank you!
Author
Owner

@jeremystretch commented on GitHub (Dec 8, 2021):

@davama I've assigned this to you for a PR. Thanks!

@jeremystretch commented on GitHub (Dec 8, 2021): @davama I've assigned this to you for a PR. Thanks!
Author
Owner

@jeremystretch commented on GitHub (Dec 22, 2021):

@davama are you still able to work on this?

@jeremystretch commented on GitHub (Dec 22, 2021): @davama are you still able to work on this?
Author
Owner

@davama commented on GitHub (Dec 22, 2021):

Thank you for the reminder.
I’ll submit shortly

@davama commented on GitHub (Dec 22, 2021): Thank you for the reminder. I’ll submit shortly
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#5694