Mike Jumper
0631ff9689
GUACAMOLE-1785: Bump version numbers to 1.5.2.
2023-05-17 16:43:01 -07:00
Mike Jumper
dacc08a841
GUACAMOLE-1788: Manually add plexus-utils to dependencies of minify-maven-plugin (fix build).
2023-05-13 10:35:54 -07:00
Mike Jumper
61356c9dc2
GUACAMOLE-1788: Update Docker build to use latest release of Maven 3.
2023-05-13 10:35:54 -07:00
Mike Jumper
8ada1a91c2
GUACAMOLE-1786: Update Java dependencies to latest compatible versions.
2023-05-11 21:03:48 -07:00
Mike Jumper
c6770bbda7
GUACAMOLE-615: Add constants clarifying magic numbers in JS implementation of Guacamole parser.
2023-05-09 12:55:43 -07:00
Mike Jumper
5374163c95
GUACAMOLE-615: Clarify/document internals of JS implementation of codePointCount().
2023-05-09 12:55:43 -07:00
Mike Jumper
38f7b09efb
GUACAMOLE-615: Add spaces around operators for consistency with established style.
2023-05-09 12:55:43 -07:00
Mike Jumper
3acd7ce269
GUACAMOLE-615: Add unit tests for JS implementation of toInstruction().
2023-05-09 12:55:43 -07:00
Mike Jumper
62f31b429e
GUACAMOLE-615: Add unit tests for JS implementation of codePointCount().
2023-05-09 12:55:43 -07:00
Mike Jumper
525c476854
GUACAMOLE-615: Add unit tests for JS parser in buffer mode.
2023-05-09 12:55:43 -07:00
Mike Jumper
d6a01c28e5
GUACAMOLE-615: Migrate tunnel implementations to common parser.
2023-05-09 12:55:43 -07:00
Mike Jumper
81f0e8c280
GUACAMOLE-615: Correct parser calculation of element lengths.
2023-05-05 11:20:34 -07:00
Mike Jumper
82033adad0
GUACAMOLE-615: Add more thorough unit tests for protocol parsing.
2023-05-05 11:20:34 -07:00
Michael Jumper
89c3433f51
GUACAMOLE-1756: Clean up assignment of application state.
2023-05-04 18:22:59 -07:00
Michael Jumper
a1fbe5f0a4
GUACAMOLE-1756: Display login failures regardless of whether the interactive login form was used.
2023-05-04 18:22:59 -07:00
Michael Jumper
b58d236fd2
GUACAMOLE-1745: Ensure deep copies of session storage are created only if necessary.
2023-05-04 17:25:40 -07:00
Michael Jumper
ed19b704cc
GUACAMOLE-1687: Clean, document, and clarify usage of tunnel timer reset function.
2023-05-04 16:26:07 -07:00
Michael Jumper
e99e104fb1
GUACAMOLE-1687: Leverage network activity to ensure keep-alive pings are sent.
2023-05-04 16:26:07 -07:00
Michael Jumper
70d2cd97d6
GUACAMOLE-1562: Update chained tunnel UUID when underlying tunnel receives UUID.
2023-05-04 16:21:15 -07:00
Michael Jumper
063557f084
GUACAMOLE-1562: Ensure "ping" response is not erroneously handled as the tunnel UUID.
2023-05-04 16:21:15 -07:00
Michael Jumper
486fe6f42a
GUACAMOLE-1769: Handle case that KSM's getCustom() returns null.
2023-04-13 13:38:53 -07:00
Mike Jumper
0b4468ba24
GUACAMOLE-1752: Bump version numbers to 1.5.1.
2023-04-09 19:54:19 -07:00
Mike Jumper
860cb1930b
GUACAMOLE-1765: Merge changes migrating JS unit tests to frontend-maven-plugin and headless Firefox.
2023-04-07 12:01:04 -07:00
Michael Jumper
1d0714f185
GUACAMOLE-1763: Update JavaScript dependencies to latest compatible versions.
2023-04-03 14:31:07 -07:00
Michael Jumper
8ee9ee40dc
GUACAMOLE-1763: Update Java dependencies to latest compatible versions.
2023-04-03 14:24:58 -07:00
Mike Jumper
309350a909
GUACAMOLE-1293: Display anonymous users within a shared session as "Anonymous".
2023-02-03 16:37:19 -08:00
Mike Jumper
bd91327415
GUACAMOLE-1293: Allow "onmsg" to determine whether "onjoin" and "onleave" fire.
2023-01-31 15:27:00 -08:00
Mike Jumper
b7e3f73ffa
GUACAMOLE-1293: Clarify message parameter mapping with variable naming.
2023-01-30 12:07:50 -08:00
Mike Jumper
c45c529522
GUACAMOLE-1293: Display user count and join/leave notifications in out-of-the-way status indicator.
2023-01-30 10:16:22 -08:00
Mike Jumper
a0d5824e83
GUACAMOLE-1293: Add "onjoin" and "onleave" events as alternative to handling low-level "msg" instructions directly.
2023-01-30 10:16:22 -08:00
Mike Jumper
250039aaf9
GUACAMOLE-1293: Replace message list with overall shared user count.
2023-01-30 10:16:22 -08:00
Mike Jumper
9a587a16eb
GUACAMOLE-1322: Merge correction to SAML sanity-checking logic regarding SAML_IDP_URL.
2023-01-22 09:32:17 -08:00
Mike Jumper
28ae0a9331
GUACAMOLE-1293: Merge client support for join/leave notifications.
2023-01-10 21:59:14 -08:00
Mike Jumper
b35873f79e
GUACAMOLE-1604: Add 1.5.0 to list of compatible API versions.
2023-01-10 16:41:23 -08:00
Mike Jumper
0eed915d28
GUACAMOLE-1604: Bump Guacamole.API_VERSION to 1.5.0.
2023-01-10 16:40:52 -08:00
Mike Jumper
5ecee2efaa
GUACAMOLE-1604: Bump version numbers of all projects to 1.5.0.
2023-01-10 16:40:19 -08:00
Mike Jumper
0f3cb8d056
GUACAMOLE-1594: Update JavaScript dependencies to latest compatible versions.
2023-01-10 16:28:08 -08:00
Mike Jumper
9262a2b33b
GUACAMOLE-1594: Update Java dependencies to latest compatible versions.
2023-01-10 16:28:08 -08:00
Michael Jumper
9ca7d00dab
GUACAMOLE-1594: Exclude optional JavaMail dependency from Logback.
2022-11-11 16:04:16 -08:00
Mike Jumper
22f2f89009
GUACAMOLE-1594: Switch to Logback 1.3.x (supports Java 8).
2022-11-11 15:27:28 -08:00
Mike Jumper
4c8ba81c10
GUACAMOLE-1594: Override transitive common-text for LDAP with latest release (1.10.0).
2022-11-06 22:06:22 -08:00
Mike Jumper
6637f4911d
GUACAMOLE-1594: Update to Spring Security 5.7.5.
2022-11-06 22:06:17 -08:00
Mike Jumper
753cfc3e5c
GUACAMOLE-1594: Update to latest version of Jackson (2.14.0).
2022-11-06 22:06:06 -08:00
Mike Jumper
ce9922e08c
GUACAMOLE-1594: Update all Java and JavaScript dependencies to latest compatible.
...
NOTE: Several WebPack plugins could not be updated as all plugins within
WebPack's "webpack-contrib" have dropped support for WebPack v4
entirely, but Closure Compiler only supports WebPack v4.
2022-10-27 12:54:58 -07:00
Mike Jumper
fed176def6
GUACAMOLE-1005: Merge Docker support for configuring RemoteIPValve.
2022-07-27 23:42:11 -07: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
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
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