Michael Jumper
2e5d3f4faf
GUACAMOLE-990: Disable tracking if max addresses is not a positive integer.
2022-08-22 15:16:46 -07:00
Michael Jumper
584db45a4f
GUACAMOLE-990: Enabled/disable auth failure tracking via implementations of a common interface.
2022-08-22 15:16:46 -07:00
Michael Jumper
a9ed4c2982
GUACAMOLE-990: Revise guacamole-auth-ban log levels to generally always notify of problematic addresses.
2022-08-22 15:16:46 -07:00
Michael Jumper
8b981d9213
GUACAMOLE-990: Add Docker image support for guacamole-auth-ban.
2022-08-22 15:16:45 -07:00
Michael Jumper
43f65357c8
GUACAMOLE-990: Limit maximum number of tracked addresses.
2022-08-22 15:16:45 -07:00
Michael Jumper
2b19bc95da
GUACAMOLE-990: Use translation string for "too many failed attempts" error.
2022-08-22 15:16:45 -07:00
Michael Jumper
f9d8abcfde
GUACAMOLE-990: Clear out any previous authentication token that is known to be invalid.
2022-08-22 15:16:45 -07:00
Michael Jumper
275b5bee13
GUACAMOLE-990: Add extension for automatically blocking brute-force auth attempts.
2022-08-22 09:59:06 -07:00
Michael Jumper
e6a61b7223
GUACAMOLE-990: Fire auth success/failure events only after authentication has absolutely succeeded or failed, including the details of any failure.
...
Previously, these events were fired only after the user's identity had
been determined (or failed to be determined). If we don't wait until
after the user contexts have also been successfully obtained (or failed
to be obtained), then things like MFA will not be taken into account
for auth events.
2022-08-22 09:59:06 -07:00
Michael Jumper
0e5a3cb74f
GUACAMOLE-990: The UserContext passed to redecorate() should NOT be the internal DecoratedUserContext wrapper.
2022-08-18 12:26:55 -07:00
Michael Jumper
8cc7e47de2
Merge 1.5.0 changes back to master.
...
Please enter a commit message to explain why this merge is necessary,
2022-07-27 23:51:48 -07:00
Mike Jumper
fed176def6
GUACAMOLE-1005: Merge Docker support for configuring RemoteIPValve.
2022-07-27 23:42:11 -07:00
Mike Jumper
4b4490b45a
GUACAMOLE-1629: Merge correction to handling of group cycles in KSM support.
2022-07-26 14:52:10 -07:00
Mike Jumper
5b1d39634e
GUACAMOLE-1643: Merge corrections to connection group KSM config edit behavior.
2022-07-22 08:49:24 -07:00
Mike Jumper
a11b9a9ae4
GUACAMOLE-1643: Merge support for KSM one-time tokens at connection group level.
2022-07-21 12:57:49 -07:00
Mike Jumper
8772207a75
GUACAMOLE-1629: Merge support for vault-specific configuration at the connection group level.
2022-07-07 10:33:42 -07:00
Mike Jumper
e348d3f89a
GUACAMOLE-1372: Merge support for signed/encrypted SAML requests.
2022-07-05 14:32:31 -07:00
Mike Jumper
46661eed74
GUACAMOLE-1623: Merge fix for build against Java 8 (no List.of()).
2022-06-22 20:51:59 -07: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
Mike Jumper
8822db781e
GUACAMOLE-1606: Merge changes correcting retrieval of user group attribute schema.
2022-06-06 09:04:48 -07:00
Mike Jumper
20fd023751
GUACAMOLE-1616: Merge correction to injection of HISTORY_UUID token for external connections.
2022-06-03 13:53:59 -07:00
Mike Jumper
612491e663
GUACAMOLE-1616: Merge support for tracking external connection history within database.
2022-05-31 20:54:31 -07:00
Mike Jumper
0a7ecff3cb
GUACAMOLE-1614: Merge changes upgrading to latest jasmine-maven-plugin (no PhantomJS).
2022-05-24 14:12:52 -07:00
Michael Jumper
be90de9a9d
GUACAMOLE-377: Switch over to "disable-gfx" parameter (enable RDPGFX by default).
2022-05-18 15:56:39 -07:00
Michael Jumper
59ace6c493
GUACAMOLE-377: Add extension for displaying render statistics in a toolbar.
2022-05-18 15:56:39 -07:00
Michael Jumper
e5dccc8657
GUACAMOLE-377: Add JavaScript API support for tracking display render statistics.
2022-05-18 15:56:39 -07:00
Michael Jumper
93d97e8c97
GUACAMOLE-377: Add parameter definition and translation for "enable-gfx".
2022-05-17 21:09:18 +00:00
Michael Jumper
d6db8fac7e
GUACAMOLE-377: Flush frames asynchronously with requestAnimationFrame() if possible.
2022-05-17 21:09:17 +00:00
Michael Jumper
7f707cdb04
Merge 1.5.0 changes back to master.
2022-05-02 22:21:42 +00:00
Mike Jumper
ef9afb0c7d
GUACAMOLE-1594: Merge updates to Java/JavaScript dependencies of webapp.
2022-05-02 15:18:30 -07: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
Mike Jumper
ae1d5d38ab
GUACAMOLE-1584: Merge additional home page section header IDs to ease third-party CSS rules.
2022-04-21 16:32:05 -07: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
c45bd9f7d3
GUACAMOLE-462: Ensure compatibility with 1.x extensions is maintained.
2022-03-31 18:07:29 +00:00
Michael Jumper
ba54a3aa18
GUACAMOLE-462: Request correct sort order from REST API when searching history.
2022-03-31 18:06:11 +00:00
Michael Jumper
b9e79d99c5
GUACAMOLE-1562: Update chained tunnel UUID when underlying tunnel receives UUID.
2022-03-25 21:37:53 +00:00
Michael Jumper
c555fe6411
GUACAMOLE-1562: Ensure "ping" response is not erroneously handled as the tunnel UUID.
2022-03-25 21:37:17 +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
357e585edd
GUACAMOLE-462: Declare variables with "const" where appropriate.
2022-03-03 22:25:02 +00:00
Michael Jumper
531711493e
GUACAMOLE-462: Add in-app player for session recordings.
2022-03-03 22:25:02 +00:00
Michael Jumper
2428c7eb14
GUACAMOLE-462: Report size of files downloaded via the static HTTP tunnel.
2022-03-02 23:05:02 +00:00
Michael Jumper
389bbece05
GUACAMOLE-462: Store REST API history entry directly in ConnectionHistoryEntryWrapper, rather than duplicating properties.
2022-03-02 23:05:02 +00:00
Michael Jumper
c3aad01be8
GUACAMOLE-462: Continue playback only after keyframe import.
...
If this is not done, asynchronous decoding of the keyframe via text()
may complete AFTER replay continues, effectively ignoring the keyframe,
leaving currentFrame untouched, and unnecessarily replaying
instructions.
2022-03-02 20:37:41 +00:00
Michael Jumper
c4b8a13968
GUACAMOLE-462: State of recording after resetting to a keyframe is the index of that keyframe, not necessarily the requested seek index.
...
Further instructions may need to be replayed after seeking to the
keyframe in order to reach the desired frame index.
2022-03-02 20:37:37 +00:00
Michael Jumper
27c7ab782f
GUACAMOLE-462: Do not continue an outstanding state import if its corresponding seek has been cancelled.
2022-03-02 20:37:30 +00:00
Michael Jumper
d4899f102f
GUACAMOLE-462: Clear out pending display operations and fully reset when importing state.
2022-03-02 20:37:25 +00:00
Michael Jumper
a27bd2694a
GUACAMOLE-462: Allow pending display frames to be cancelled.
2022-03-02 20:37:18 +00:00
Michael Jumper
8ebe13d085
GUACAMOLE-1545: Ensure tunnel "onload" fires only for true state changes.
...
Previously, the state of the tunnel implementations was initialized to
"CONNECTING", which is incorrect and may result in (1) initial state
changes to "CONNECTING" not firing "onstatechange" and (2) the state
change to "CLOSED" incorrectly firing when initially connecting,
despite there not being an established connection.
2022-03-02 20:35:52 +00:00
Michael Jumper
26a9246e32
GUACAMOLE-462: Correct missing import for JavaDoc reference.
2022-02-28 00:30:30 +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
6874f9c6bd
GUACAMOLE-462: Add JavaScript objects for REST API representations of activity logs.
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
d367add785
GUACAMOLE-462: Allow logs associated with history entries to be retrieved via REST.
2022-02-28 00:30:30 +00:00
Michael Jumper
0cca98d0b2
GUACAMOLE-462: Directly support associating session recordings with history entries at API level.
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
a5c58e221b
GUACAMOLE-462: Add convenience classes for decorating ActivityRecordSets and their records.
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
dc98633897
GUACAMOLE-462: Separate Attributes interface into read-only and read/write variations.
2022-02-28 00:30:30 +00:00
Mike Jumper
402197863f
GUACAMOLE-1539: Merge correction to Docker entrypoint auth sanity check.
2022-02-27 14:55:03 -08:00
Michael Jumper
a096abd735
GUACAMOLE-896: Always flush instruction buffer upon end of static tunnel.
2022-02-23 09:28:48 -08:00
Michael Jumper
d0257122bb
GUACAMOLE-896: Leverage Blobs for storage of recording keyframes.
2022-02-14 09:21:22 -08: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
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
Michael Jumper
96c8c7de61
GUACAMOLE-641: Correct old references to the temporarily-removed Azure support.
2022-01-25 19:50:17 -08: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
Michael Jumper
df386bfd10
GUACAMOLE-1508: Ensure extension JarFile is always properly closed.
2022-01-23 15:07:40 -08: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
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
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