mirror of
https://github.com/bolkedebruin/rdpgw.git
synced 2026-05-12 19:30:04 +00:00
Introduce a generic, allow-list-gated way for the /connect endpoint to accept RDP setting overrides via URL query parameters. Operators opt in via client.rdpoverridablekeys; absent that allow-list, URL-driven overrides are rejected with 400. Override values are routed through rdp.Builder.ApplyOverrides, which matches query keys against the rdp struct tags of RdpSettings and validates per Go field type. Overridden fields are tracked so explicit values always serialize even when they equal the field default. The override pass runs before authoritative server-controlled fields (gateway address, access token, full address, username) so those always win. This replaces the per-option string-splice approach considered in #181: multimon now works via ?usemultimon=1 against an operator allow-list containing "use multimon", and any other RDP key follows the same path without bespoke handler code.