Commit Graph

1637 Commits

Author SHA1 Message Date
James Muehlner
0585ab5e5b GUACAMOLE-1629: Fix client/cache confusion in comments. 2022-07-06 19:01:33 +00:00
James Muehlner
374f1b5e49 GUACAMOLE-1629: Always include any pre-existing connection group attributes when exposing new ones. 2022-07-06 17:55:36 +00:00
James Muehlner
5b69bf405d GUACAMOLE-1629: Use TextField for KSM configuration since it's always one line. 2022-07-06 17:31:22 +00:00
James Muehlner
616cb39682 GUACAMOLE-1372: Throw fatal exception if files are specified but unreadable. 2022-07-05 20:38:11 +00:00
James Muehlner
025e831b3d GUACAMOLE-1372: Add configuration properties for setting private key and cert. 2022-07-05 19:49:54 +00:00
James Muehlner
fee2f8b416 GUACAMOLE-1629: Hook KSM vault code into base vault code and clean up. 2022-07-01 20:14:34 +00:00
James Muehlner
16efc0cdc1 GUACAMOLE-1629: Implement multiple-vault support for KSM codebase. 2022-06-29 21:36:53 +00:00
James Muehlner
f7d90a641e GUACAMOLE-1629: Add configuration properties and associated translations. 2022-06-29 21:36:22 +00:00
James Muehlner
f64bd30e9d GUACAMOLE-1623: Use Java 8 List initializer to fix Java 8 builds. 2022-06-23 02:41:42 +00:00
Mike Jumper
7d71391bb3 GUACAMOLE-1623: Merge support for extracting Windows domain information from vault-stored usernames. 2022-06-22 16:11:58 -07:00
James Muehlner
647cfa6a0c GUACAMOLE-1623: Extract domain field directly from the vault, or split out of username. 2022-06-22 22:42:30 +00:00
James Muehlner
4b161a5a6e GUACAMOLE-377: Merge client-side support for frame tracking, RemoteFX parameter, and performance tracking extension. 2022-06-13 12:58:50 -07:00
James Muehlner
31f9107ca2 GUACAMOLE-1616: Send updated tokens after adding HISTORY_UUID. 2022-06-03 20:51:59 +00:00
James Muehlner
7e4627c943 GUACAMOLE-1616: Store HISTORY_UUID in tokens for use by other extensions. 2022-05-31 21:36:08 +00:00
James Muehlner
cd3c1fbf35 GUACAMOLE-1616: Write history records for external connections if configured to do so. 2022-05-31 17:33:04 +00:00
Michael Jumper
59ace6c493 GUACAMOLE-377: Add extension for displaying render statistics in a toolbar. 2022-05-18 15:56:39 -07:00
James Muehlner
6425b69bd8 Merge changes from 1.5.0 back to master. 2022-04-28 17:04:37 +00:00
Michael Jumper
837a0360be GUACAMOLE-641: Clarify that null will also be returned if the List actually contains null. 2022-04-27 22:01:01 +00:00
Michael Jumper
741cf481d6 GUACAMOLE-641: Ensure empty strings within KSM record fields are handled as if the field value is absent. 2022-04-27 19:22:04 +00:00
James Muehlner
5a95861f02 Merge changes from staging/1.5.0 back to master. 2022-03-31 21:39:02 +00:00
Michael Jumper
98abadaef5 GUACAMOLE-462: Do not attempt to retrieve recordings for records with null UUIDs. 2022-03-31 19:56:50 +00:00
Michael Jumper
a608fa274d GUACAMOLE-1550: Allow TOTP key to be cleared by setting its generation status.
The previous functionality provided two checkboxes: one for requesting
that the TOTP key be cleared, and another for directly managing whether
the TOTP key has been confirmed. This is confusing as checkboxes
normally represent state, but the "reset" checkbox here is representing
an action.

Instead, both checkboxes should represent state: whether the key has
been generated and whether the generated key has been confirmed.
2022-03-11 19:05:04 +00:00
Michael Jumper
f83ee0c60b GUACAMOLE-462: Add ${HISTORY_PATH} convenience token for automatically placing recordings in the expected location. 2022-02-28 00:30:30 +00:00
Michael Jumper
a123eacab5 GUACAMOLE-462: Add extension for automatically associated session recordings, logs, etc. with history entries. 2022-02-28 00:30:30 +00:00
Michael Jumper
c386845f24 GUACAMOLE-462: Retrieve individual database history records directly (by ID). 2022-02-28 00:30:30 +00:00
Michael Jumper
449fcb828e GUACAMOLE-462: Allow individual records to be identified and retrieved directly. 2022-02-28 00:30:30 +00:00
Michael Jumper
b80d8da1bb GUACAMOLE-462: Migrate user/connection record mappers to common base interface. 2022-02-28 00:30:30 +00:00
Michael Jumper
45ac06e0d0 GUACAMOLE-462: Create connection history records for in-progress connections.
Besides restoring historically-provided functionality, the ID generated
by the database for connection history records is needed to generate a
deterministic UUID that can be injected into connection configurations
with ${HISTORY_UUID}. Having such a token allows session recordings to
be given names that can be reliably matched with history records.
2022-02-28 00:30:30 +00:00
Michael Jumper
fb3aeb7628 GUACAMOLE-462: Ensure activity record UUID becomes available/updated if underlying model is assigned an ID. 2022-02-28 00:30:30 +00:00
Michael Jumper
538ac5d934 GUACAMOLE-462: Include history record UUID as token. 2022-02-28 00:30:30 +00:00
Michael Jumper
32c7ab03ad GUACAMOLE-462: Generate consistent history record UUIDs based on database record IDs. 2022-02-28 00:30:30 +00:00
Michael Jumper
9cbf4f045f GUACAMOLE-462: Add API-level support for associating data with history records. 2022-02-28 00:30:30 +00: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
7e30b8682a GUACAMOLE-1509: Merge add contextual CSS classes to reduce template ambiguity. 2022-01-23 15:30:37 -05:00
Michael Jumper
a688bc507c GUACAMOLE-1509: Add name attribute to all applicable fields. 2022-01-23 12:20:46 -08: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