Defining an ABI-compatible version of Connectable at the guacamole-ext
level is problematic as concrete implementations of the interface will
suddenly compile despite having no implementation of connect() at all.
We can instead rely on the web application to ensure binary
compatibility, leaving guacamole-ext to define the interface that new
code should use.
Previous implementations of SimpleConnection did not interpret parameter
tokens automatically. Adding that behavior now could have security
implications for downstream users of the class if parameter values may
unexpectedly contain substrings which would be interpreted as tokens,
particularly if parameter values are built from untrusted input.
While raw, internal access to the GuacamoleConfiguration was originally
present in older versions of SimpleConnection, this access was
undocumented and could result in unexpected behavior if the default
constructor was used, getConfiguration() was overridden, or
setConfiguration() was called.
Add support for reading from docker secret files. New script prefers environment variables ending with _FILE over normal variables, meaning that Docker secrets will take precedence. You can, however, mix variable types, ex. MYSQL_USER uses a normal environment variable, while MYSQL_PASSWORD uses a secret.
To include library for RADIUS authentication in the docker image the
build needs to activate the maven profile "lgpl-extentions" and copy
the library into the image.
The docker start script needs to pass through settings and link the
library to GUACAMOLE_HOME.
Including `ngRoute` as a dependency of a module which defines a custom
field type will always result in the following error:
Unknown provider: $rootElementProvider <- $rootElement <- $location <- $route <- $location
This seems to be due to the manner in which the injector is created for
field types. `$rootElementProvider` is not available for injection in
the context of the injector of a custom field. This is generally OK, but
`ngRoute` transitively depends on `$rootElementProvider`. Since
`$rootElementProvider` cannot be injected within the context of a field
type, no field type can depend on ngRoute without causing this error.
Note that extensions can still leverage `ngRoute` (this is already done
by the OpenID support). It just cannot be declared as a dependency of a
module containing a custom field type.