Commit Graph
6217 Commits
Author SHA1 Message Date
Michael Jumper d0257122bb GUACAMOLE-896: Leverage Blobs for storage of recording keyframes. 2022-02-14 09:21:22 -08:00
Virtually Nick e2af997967 GUACAMOLE-896: Merge allow playback of session recordings that cannot fit in memory. 2022-02-12 20:54:31 -05:00
Mike Jumper f82b7e884c GUACAMOLE-1322: Merge Docker image support for SAML. 2022-02-11 17:23:43 -08:00
Michael Jumper b8da13243d GUACAMOLE-896: Ensure "seeking" class not erroneously assigned if seek() finishes immediately. 2022-02-11 17:17:44 -08:00
Michael Jumper 2c8bc58402 GUACAMOLE-896: Avoid XHR-related memory limitations by using Fetch API.
The Fetch API allows us to read HTTP responses as true streams, without
building an in-memory string. We can the buffer things ourselves as we
see fit, including as a Blob that can dynamically leverage disk storage
for larger data.
2022-02-11 17:17:44 -08:00
Michael Jumper f559f5ca70 GUACAMOLE-896: Add JavaScript UTF-8 parser implementation. 2022-02-11 17:17:44 -08:00
Michael Jumper a97404b6ad GUACAMOLE-896: Update session recording player to support efficient reading from Blobs. 2022-02-11 17:09:57 -08:00
Jean-Benoit Paux 3e1c92a532 GUACAMOLE-1322: implement correct property requirement logic 2022-02-10 12:37:31 +01:00
Jean-Benoit Paux eb58d37d00 GUACAMOLE-1322: fix SAML/OpenID typo and style 2022-02-10 12:37:30 +01:00
Markus Petzsch 51eaddeba8 GUACAMOLE-1322: prepend Variable for SAML plugin with missing $ 2022-02-10 12:37:30 +01:00
Markus Petzsch 2fbd228c33 GUACAMOLE-1322: Correct indentation of SAML property assignments to match established code style. 2022-02-10 12:37:30 +01:00
Markus Petzsch d8765a8f3c GUACAMOLE-1322: Add Docker environment variables for configuring SAML. 2022-02-10 12:37:30 +01:00
Virtually Nick 01503bc76e GUACAMOLE-641: Merge use "KeyPair" typed field for private key only if non-empty. 2022-01-30 14:45:58 -05:00
Michael Jumper ed14fa3ecf GUACAMOLE-641: Use "KeyPair" typed field for private key only if non-empty.
An SSH server record in KSM has an associated "KeyPair" field, but this
field need not be set. If unset, the current logic ignores the rest of
the record and assumes there is no private key at all. Instead, the
standard fallbacks of locating an attached PEM file, locating an
alternative password field, etc. should be used.
2022-01-30 11:33:14 -08:00
James Muehlner a0d8a7a4ef GUACAMOLE-641: Merge support for reading secrets from key vaults. 2022-01-25 20:47:14 -08:00
Michael Jumper 96c8c7de61 GUACAMOLE-641: Correct old references to the temporarily-removed Azure support. 2022-01-25 19:50:17 -08:00
Virtually Nick 27ae3c7814 GUACAMOLE-1523: Merge resync ONLY local clipboard to internal clipboard. 2022-01-25 20:42:00 -05:00
Michael Jumper cc8b3f734c GUACAMOLE-1523: Resync ONLY local clipboard to internal clipboard.
The clipboard service previously and incorrectly resynced the internal
clipboard with itself. This had the effect of forcing a resync of the
internal clipboard contents to the external, local clipboard, clearing
that clipboard of whatever was copied before.
2022-01-25 16:41:16 -08:00
Mike Jumper 6b24394c9b GUACAMOLE-1507: Merge support for configuring the 'extension-priority' property via Docker environment variables. 2022-01-23 18:42:45 -08:00
Virtually Nick 0f83d2ea48 GUACAMOLE-1508: Merge ensure extension JarFile is always properly closed. 2022-01-23 19:14:13 -05:00
Michael Jumper df386bfd10 GUACAMOLE-1508: Ensure extension JarFile is always properly closed. 2022-01-23 15:07:40 -08:00
Virtually Nick 7e30b8682a GUACAMOLE-1509: Merge add contextual CSS classes to reduce template ambiguity. 2022-01-23 15:30:37 -05:00
Michael Jumper d1bbfd18ab GUACAMOLE-1509: Add contextual CSS classes to containers/elements that are otherwise ambiguous. 2022-01-23 12:20:46 -08:00
Michael Jumper a7cf01064a GUACAMOLE-1509: Add status-specific CSS classes to connection notifications. 2022-01-23 12:20:46 -08:00
Michael Jumper a688bc507c GUACAMOLE-1509: Add name attribute to all applicable fields. 2022-01-23 12:20:46 -08:00
Michael Jumper c93b05ca23 GUACAMOLE-1509: Automatically generate CSS classes for forms and fields. 2022-01-23 12:20:46 -08:00
Virtually Nick b34696e48b GUACAMOLE-1508: Merge add support for nesting .jar files within extensions. 2022-01-23 15:06:51 -05:00
Virtually Nick ac7ceb5862 GUACAMOLE-1511: Merge revert incorrect recursive constructor invocation. 2022-01-23 15:06:00 -05:00
Michael Jumper bba94c0f94 GUACAMOLE-1511: Revert incorrect recursive constructor invocation.
A previous iteration of the whitespace-trimming changes involved an
additional constructor variation. After removing that portion, the
original constructor for PropertiesGuacamoleProperties was not restored
correctly, and now recursively invokes itself.
2022-01-23 11:57:18 -08:00
Virtually Nick c079b31dd5 GUACAMOLE-1511: Merge automatically trim whitespace from property values. 2022-01-23 14:28:18 -05:00
Michael Jumper 979505bb58 GUACAMOLE-641: Remove Azure Key Vault extension until license text can be obtained. 2022-01-22 22:25:05 -08:00
Michael Jumper e89a65586c GUACAMOLE-641: Alternatively download .pem files for private keys. 2022-01-22 22:25:05 -08:00
Michael Jumper 86d1de5f2c GUACAMOLE-641: Automatically pull Guacamole properties from vault. 2022-01-22 22:25:05 -08:00
Michael Jumper 46501f4b63 GUACAMOLE-641: Correct standard vs. custom field logic for complex retrievals.
When retrieving a contextual field like "passphrase", which does not
have a typed representation different from "password" or "hidden", the
contexts where the field's identity is truly known should be preferred
("password" field of a record with a "keypair" field, which MUST be the
key passphrase). When venturing outside well-known contexts, custom
fields should be preferred when their standard counterparts would
already have well-established meanings that differ from the requested
secret (again: "password" of a record with "keypair").

If this is not done, things like retrieving the private key from a
"Login" record fail, as one of the possible storage mechanisms for a
private key is a hidden or password field, which pulls the user's
password instead of their key. In this case, the correct behavior is
to pull the typed value ("keypair") if available, and use custom fields
ONLY otherwise, as those fields have labels that can establish context.
In no other case would it be reliable to assume that a hidden/password
field actually contains a private key.
2022-01-22 22:25:05 -08:00
Michael Jumper 1cfd2ee835 GUACAMOLE-641: Index records by username ONLY if not related to a hostname.
Doing otherwise would mean that a particular user would never be able
to be associated with a specific password/key by their username if they
have any explicit server-specific account.
2022-01-22 22:25:05 -08:00
Michael Jumper 87b26fe2c8 GUACAMOLE-641: Use record service to resolve hostname/username of records for later lookup. 2022-01-22 22:25:04 -08:00
Michael Jumper 55b7e6f867 GUACAMOLE-641: Additionally match against KSM custom fields based on labels. 2022-01-22 22:25:04 -08:00
Michael Jumper f8f0779d7a GUACAMOLE-641: Manually extract password value from KeeperRecord.
Simply calling getPassword() does not currently work correctly, as the
implementation of getPassword() assumes there will be at least one
value if the field is present. This results in an
ArrayIndexOutOfBoundsException for records with empty passwords:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
 at java.util.ArrayList.rangeCheck(ArrayList.java:659)
 at java.util.ArrayList.get(ArrayList.java:435)
 at com.keepersecurity.secretsManager.core.KeeperRecord.getPassword(SecretsManager.kt:134)
 ...
2022-01-22 22:25:04 -08:00
Michael Jumper b6e6800c0d GUACAMOLE-641: Consider null token mapping (blank YAML) to be empty. 2022-01-22 22:25:04 -08:00
Michael Jumper aee1b13b2b GUACAMOLE-641: Include KSM extension in vault distribution. 2022-01-22 22:25:04 -08:00
Michael Jumper 62863f8a0b GUACAMOLE-641: Log possible ambiguous record retrievals at debug level. 2022-01-22 22:25:04 -08:00
Michael Jumper c5ae027225 GUACAMOLE-641: Add user- and gateway-specific tokens. 2022-01-22 22:25:04 -08:00
Michael Jumper b655866057 GUACAMOLE-641: Consider existing tokens when injecting tokens from vault. 2022-01-22 22:25:04 -08:00
Michael Jumper 7641fa9222 GUACAMOLE-641: Allow TokenInjecting* implementations to consider values of existing tokens. 2022-01-22 22:25:04 -08:00
Michael Jumper d2f5596015 GUACAMOLE-641: Automatically provide KEEPER_SERVER_* tokens based on connection parameters. 2022-01-22 22:25:04 -08:00
Michael Jumper 30f24de808 GUACAMOLE-641: Allow vault implementations to automatically provide tokens based on connection parameters (without YAML mapping). 2022-01-22 22:25:04 -08:00
Michael Jumper d0bd4b52d6 GUACAMOLE-641: Add general service for retrieving data from Keeper records. 2022-01-22 22:25:04 -08:00
Michael Jumper d0043e34dd GUACAMOLE-641: Allow token mapping file to not exist.
Some tokens may be standardized or specific to the implementation, and
may not need to be defined in YAML.
2022-01-22 22:25:04 -08:00
Michael Jumper 8bedbe746c GUACAMOLE-641: Add initial draft implementation of KSM vault support for Guacamole. 2022-01-22 22:25:04 -08:00
Michael Jumper 786430612e GUACAMOLE-641: Canonicalize individual, tokenized components of secret names rather than the whole name.
In the event that a secret name is structured, such as the URL-like
notation used by Keeper Secrets Manager, canonicalizing/encoding the
entire name could result in the name itself becoming invalid. Only the
portions that come from tokens should be canonicalized.
2022-01-22 22:25:04 -08:00