#34846 [Feature]: Option to override client-supplied 'user' field with authenticated user_id
## The Feature
Add a config option (e.g. `general_settings.override_user_param: true`) that makes the proxy always set `data["user"]` to the authenticated `user_api_key_dict.user_id`, ignoring any client-supplied value.
Currently, `proxy_server.py` only sets `data["user"]` when the client doesn't provide it:
```python # users can pass in 'user' param to /chat/completions. Don't override it if data.get("user", None) is None and user_api_key_dict.user_id is not None: data["user"] = user_api_key_dict.user_id ```
This is correct for deployments where a service account makes requests on behalf of multiple end users (the client is trusted to set `user`). But in deployments where LiteLLM is the authentication boundary, the client-supplied `user` should not be trusted; the proxy should override it with the identity it authenticated.
## Motivation
In multi-gateway corporate environments, there are typically multiple layers of LLM gateways. When LiteLLM handles end-user authentication (via API keys or JWT), the downstream gateway needs to know the authenticated identity for per-user rate limiting, budget enforcement, and audit logging. The `user` field in the OpenAI spec is the nat…