Skip to content

GUACAMOLE-2199: Adds support dynamic Base URL injection via configured header. Includes unit tests for API compatibility.#1146

Open
rogerberaldi wants to merge 1 commit intoapache:mainfrom
rogerberaldi:guacamole-2199-dynamic-base-url
Open

GUACAMOLE-2199: Adds support dynamic Base URL injection via configured header. Includes unit tests for API compatibility.#1146
rogerberaldi wants to merge 1 commit intoapache:mainfrom
rogerberaldi:guacamole-2199-dynamic-base-url

Conversation

@rogerberaldi
Copy link

JIRA Issue: https://issues.apache.org/jira/browse/GUACAMOLE-2199

Overview:
This PR enables support for stateless load balancing architectures (e.g., Kubernetes Ingress, Zero-Trust Gateways) where sticky sessions are unavailable or unreliable. It introduces a configurable property that allows an upstream proxy to explicitly dictate the client's Base URL via an HTTP header.

Changes:

  • Configuration: Introduced auth-base-url-header in guacamole.properties.
  • API: Updated APIAuthenticationResult to include a baseUrl field.
  • Compatibility: Implemented constructor chaining in APIAuthenticationResult to ensure binary compatibility with existing extensions.
  • Logic: Updated TokenRESTService to inspect the configured header and inject the URL (replacing {TOKEN} placeholder) into the auth response.

Verification:

  • Added APIAuthenticationResultTest to verify backward compatibility of constructors and correct injection of the baseUrl field.
  • mvn test passed.
  • Verified that default behavior (when property is unset) remains unchanged.

@rogerberaldi rogerberaldi changed the title GUACAMOLE-2199: Adds support dynamic Base URL injection via configure… GUACAMOLE-2199: Adds support dynamic Base URL injection via configured header. Includes unit tests for API compatibility. Jan 5, 2026
…d header. Includes unit tests for API compatibility.
@rogerberaldi rogerberaldi force-pushed the guacamole-2199-dynamic-base-url branch from 292b2e3 to db3342a Compare January 5, 2026 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant