diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 3fc75c72b..dea5d6787 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -194,6 +194,12 @@ ENABLE_FORWARD_USER_INFO_HEADERS = ( os.environ.get("ENABLE_FORWARD_USER_INFO_HEADERS", "False").lower() == "true" ) +# Header names for user info forwarding (customizable via environment variables) +FORWARD_USER_INFO_HEADER_NAME = os.environ.get("FORWARD_USER_INFO_HEADER_NAME", "X-OpenWebUI-User-Name") +FORWARD_USER_INFO_HEADER_ID = os.environ.get("FORWARD_USER_INFO_HEADER_ID", "X-OpenWebUI-User-Id") +FORWARD_USER_INFO_HEADER_EMAIL = os.environ.get("FORWARD_USER_INFO_HEADER_EMAIL", "X-OpenWebUI-User-Email") +FORWARD_USER_INFO_HEADER_ROLE = os.environ.get("FORWARD_USER_INFO_HEADER_ROLE", "X-OpenWebUI-User-Role") + # Experimental feature, may be removed in future ENABLE_STAR_SESSIONS_MIDDLEWARE = ( os.environ.get("ENABLE_STAR_SESSIONS_MIDDLEWARE", "False").lower() == "true" diff --git a/backend/open_webui/utils/headers.py b/backend/open_webui/utils/headers.py index 3caee5033..cdf5d2d85 100644 --- a/backend/open_webui/utils/headers.py +++ b/backend/open_webui/utils/headers.py @@ -1,11 +1,18 @@ from urllib.parse import quote +from open_webui.env import ( + FORWARD_USER_INFO_HEADER_NAME, + FORWARD_USER_INFO_HEADER_ID, + FORWARD_USER_INFO_HEADER_EMAIL, + FORWARD_USER_INFO_HEADER_ROLE, +) + def include_user_info_headers(headers, user): return { **headers, - "X-OpenWebUI-User-Name": quote(user.name, safe=" "), - "X-OpenWebUI-User-Id": user.id, - "X-OpenWebUI-User-Email": user.email, - "X-OpenWebUI-User-Role": user.role, + FORWARD_USER_INFO_HEADER_NAME: quote(user.name, safe=" "), + FORWARD_USER_INFO_HEADER_ID: user.id, + FORWARD_USER_INFO_HEADER_EMAIL: user.email, + FORWARD_USER_INFO_HEADER_ROLE: user.role, }