Commit Graph
100 Commits
Author SHA1 Message Date
Michael Jumper 32fd94d8d6 GUACAMOLE-630: Simplify terminal color scheme field structure and styling. 2019-08-08 21:30:44 -07:00
Michael Jumper 86d18b061b GUACAMOLE-630: Revert expansion of getFieldHeader() functionality, as it is no longer needed.
This reverts commit d618bdcabf.
2019-08-08 21:30:44 -07:00
Michael Jumper a4a0318f95 GUACAMOLE-630: Tolerate insufficient JavaScript features to run "Pickr" color picker (Internet Explorer). 2019-08-08 21:30:44 -07:00
Michael Jumper ad92e86b0c GUACAMOLE-630: Do not check spelling of color scheme source. 2019-08-08 21:30:44 -07:00
Michael Jumper 62108bf37c GUACAMOLE-630: Remove padding added to color scheme headers when within Guacamole menu. 2019-08-08 21:30:44 -07:00
Michael Jumper 9191a9f9ea GUACAMOLE-630: Always expand connection parameters to available width, not just within Guacamole menu. 2019-08-08 21:30:44 -07:00
Michael Jumper 54ce038e3d GUACAMOLE-630: Allow raw contents of custom color scheme to be edited directly. 2019-08-08 21:30:44 -07:00
Michael Jumper 3ce2adbae6 GUACAMOLE-630: Preserve raw contents of color scheme if manually edited. 2019-08-08 21:30:44 -07:00
Michael Jumper 588cdcd97a GUACAMOLE-630: Preserve the original color scheme string if no changes have been made. 2019-08-08 21:30:44 -07:00
Michael Jumper 038f5ba0c5 GUACAMOLE-630: Do not contain entire field nor entire header within <label>.
Enclosing the entire field within the <label> results in problems when
the field is large and when the field contains multiple interactive
elements. Clicking within interactive elements of a complex field
triggers the <label>, refocusing the first input element. If the field
is large, the <label> will contain empty space which also refocuses the
input field upon being clicked, despite appearing to be the background
of the page.
2019-08-08 21:30:44 -07:00
Michael Jumper a1a8be6fe5 GUACAMOLE-630: Move color scheme headers within color buttons. 2019-08-08 21:30:44 -07:00
Michael Jumper f9bfac9de2 GUACAMOLE-630: Include newlines within color scheme strings for readability. 2019-08-08 21:30:44 -07:00
Michael Jumper 02d3732c9c GUACAMOLE-630: Switch to Pickr for color picker. 2019-08-08 21:30:44 -07:00
Michael Jumper 6936aef540 GUACAMOLE-630: Allow connection parameters within Guacamole menu to use full available width. 2019-08-08 21:00:06 -07:00
Michael Jumper cbc25aac6f GUACAMOLE-630: Add field type for terminal color schemes. 2019-08-08 21:00:06 -07:00
Michael Jumper d618bdcabf GUACAMOLE-630: Expand the getFieldHeader() utility function to accept arbitrary field names. 2019-08-07 19:58:54 -07:00
Michael Jumper 6ebb53477c GUACAMOLE-623: Add Kubernetes protocol/parameter definitions and translations. 2019-08-03 13:58:50 -07:00
Michael Jumper 2085ee7424 GUACAMOLE-629: Allow client to receive connection parameter values via "argv" streams. 2019-07-30 13:02:01 -07:00
Michael Jumper c0d1ace629 GUACAMOLE-610: Add SSH/telnet parameter definitions for maximum scrollback size. 2019-07-16 12:11:21 -07:00
Mike Jumper f5aa986e63 GUACAMOLE-579: Merge support for retrieving user attributes CAS. 2019-06-23 19:20:14 -07:00
Mike Jumper 82ea1d6ff5 GUACAMOLE-354: Merge translation and definition for Swiss German keymap option. 2019-06-17 18:34:02 -07:00
Michael Jumper 48ce083ad7 GUACAMOLE-815: Remove duplicated "timezone" field definitions and translations. 2019-06-15 14:00:32 -07:00
Michael Jumper 78977ae4fc GUACAMOLE-422: Use the same display mechanism and structure (the guacForm directive) for all locale preferences, not just the time zone. 2019-06-15 13:43:28 -07:00
Michael Jumper ec963dd036 GUACAMOLE-422: Define field type which represents the ID of any supported language. 2019-06-15 13:40:16 -07:00
Michael Jumper 092657aa79 GUACAMOLE-422: Replace non-short-circuit logic in null check (&) with proper short-circuit logic (&&).
Checking `timezone != null & !timezone.isEmpty()` will result in a
`NullPointerException` when `timezone` is null, as the `&` ensures
`timezone.isEmpty()` will run in all cases.
2019-06-08 13:44:45 -07:00
Michael Jumper 1e676559a5 GUACAMOLE-422: Correct toString() for GuacamoleProtocolVersion (must be manually implemented after migrating away from enum). Add unit test for verifying toString(). 2019-06-08 13:37:28 -07:00
Michael Jumper 84bbbc4fa0 GUACAMOLE-422: Add unit test for verifying GuacamoleProtocolVersion. 2019-06-08 13:23:47 -07:00
Michael Jumper df9a0b1662 GUACAMOLE-422: Implement equals() and hashCode() for GuacamoleProtocolVersion. 2019-06-08 12:55:17 -07:00
Michael Jumper dc66f84d71 GUACAMOLE-422: Clarify behavior of atLeast(). 2019-06-08 12:51:08 -07:00
Michael Jumper 8aff7b6f5b GUACAMOLE-422: Correct logic error in atLeast() - this version should be compared against otherVersion. 2019-06-08 12:48:01 -07:00
Michael Jumper 9d1b264417 GUACAMOLE-422: Clarify meaning of protocol capabilities. 2019-06-08 12:44:00 -07:00
Michael Jumper a247ec1edc GUACAMOLE-422: Add getter for retrieving the protocol version negotiated by ConfiguredGuacamoleSocket. 2019-06-08 12:34:34 -07:00
Michael Jumper 001918e2d7 GUACAMOLE-422: Allow arbitrary protocol versions to be represented. Remove API-level assumption that protocol capabilities will have a minimum base version and remain present from that point forward. 2019-06-08 12:34:03 -07:00
Mike Jumper f2ae848b1b GUACAMOLE-422: Merge support for forwarding client timezone at Guacamole protocol level. 2019-06-07 08:53:49 -07:00
Michael Jumper 1c1fac700c GUACAMOLE-807: Correct handling of parameter tokens within LDAP.
Parameter tokens are intended to be interpreted by the connections
stored within LDAP. This was previously done through explicitly using a
TokenFilter and the StandardTokens class, however usage of
StandardTokens is now deprecated and the values of tokens to be applied
are now expected to be received through connect(). Usage of
StandardTokens was removed from LDAP with commit 1210d56, but this is
insufficient. An additional parameter must also be provided to the
SimpleConnection constructor to enable its automatic token handling
behavior.
2019-06-07 08:39:30 -07:00
Michael Jumper fb34512833 GUACAMOLE-422: Use TIMEZONE rather than TEXT fields for RDP/SSH "timezone" parameter.
It has been confirmed that the TIMEZONE field does indeed represent IANA
time zone database IDs, as required by the "timezone" parameter.
2019-05-13 18:26:01 -07:00
Michael Jumper 5be810ec6b GUACAMOLE-422: Remove "Canada/East-Saskatchewan" time zone, which was removed from the IANA database in release 2017c of the database.
From http://mm.icann.org/pipermail/tz-announce/2017-October/000047.html:

>
> Remove Canada/East-Saskatchewan from the 'backward' file, as it
> exceeded the 14-character limit and was an unused misnomer anyway.
>
2019-05-13 18:24:37 -07:00
Michael Jumper 803ff27468 GUACAMOLE-422: Update TIMEZONE field documentation to reference IANA time zone database. 2019-05-13 18:21:38 -07:00
Michael Jumper 212a39b025 GUACAMOLE-422: Add definitions and translations for the RDP/SSH "timezone" parameter. 2019-05-09 18:39:18 -07:00
Michael Jumper b5c5fa39ca GUACAMOLE-649: Add definition and translation for SSH "locale" parameter. 2019-05-09 18:25:23 -07:00
Mike Jumper 4d1e0f18dd GUACAMOLE-696: Merge changes taking database groups into account with respect to database objects when user is otherwise external to the database. 2019-05-05 19:36:37 -07:00
Michael Jumper 61b6664eac GUACAMOLE-715: Include all provided effective user groups that exist within the database in results of effective groups query, regardless of whether the user is declared as a member of those groups within the database.
While this query is generally functioning as described above for all
supported databases, it is not functioning properly for the
non-recursive variant of the MySQL/MariaDB query. This change corrects
that behavior.
2019-04-21 12:02:25 -07:00
Michael Jumper c675d83ff9 GUACAMOLE-729: Extensions compatible with 1.0.0 are also compatible with 1.1.0. 2019-02-09 11:09:05 -08:00
Michael Jumper c3fbf44f70 GUACAMOLE-729: Bump version numbers to 1.1.0. 2019-02-09 11:08:28 -08:00
Michael Jumper bcbac1fb57 GUACAMOLE-524: Ensure all guacamole-ext classes implementing connect() use the old connect() as their basis. Overriding the old connect() will not have the expected effect otherwise. 2019-01-22 15:49:16 -08:00
Michael Jumper feecb6301f GUACAMOLE-524: Declare deprecation of old connect() within guacamole-ext. 2019-01-22 15:46:43 -08:00
Michael Jumper a28b3c393a GUACAMOLE-524: Do not interpret tokens in SimpleUserContext if interpretTokens is false. 2019-01-22 14:25:27 -08:00
Michael Jumper 05553ec918 GUACAMOLE-524: Internally replace Connectable with an ABI-compatible version.
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.
2019-01-22 12:29:03 -08:00
Michael Jumper 9d74d9911e GUACAMOLE-524: Correct JavaDoc references to previous iteration of API rework. 2019-01-22 00:28:44 -08:00
Michael Jumper 49cd4e5531 GUACAMOLE-524: Clarify and document SimpleConnection implementation. 2019-01-21 22:04:44 -08:00
Michael Jumper 6be722ed9d GUACAMOLE-524: Require usages of SimpleConnection to explicitly request automatic interpretation of parameter tokens. Do not enable by default.
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.
2019-01-21 19:55:33 -08:00
Michael Jumper 7e67dde751 GUACAMOLE-524: Leverage thread-local storage to allow overriding the deprecated connect() function to have the expected effect within subclasses of SimpleConnection. 2019-01-21 17:52:54 -08:00
Michael Jumper b638387920 GUACAMOLE-524: Provide distinct, documented, internal access to raw GuacamoleConfiguration within SimpleConnection.
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.
2019-01-21 17:38:24 -08:00
Michael Jumper 4a1527b1d4 GUACAMOLE-524: Provide bridge implementations of both old and new versions of connect() for sake of compatibility. 2019-01-20 13:30:55 -08:00
Michael Jumper fe36014e97 GUACAMOLE-699: Add helper script for verifying translations. 2019-01-12 16:36:58 -08:00
Michael Jumper 78f1ae1b4e GUACAMOLE-682: Merge support for specfying the Maven build profile when building the Docker image. 2018-12-24 09:06:41 -08:00
Michael Jumper caf07a92a9 Merge 1.0.0 changes back to master. 2018-12-05 14:40:34 -08:00
Michael Jumper 801a5df9f1 GUACAMOLE-526: Merge changes correcting regression in CAS due to AngularJS update.
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.
2018-12-05 14:32:37 -08:00
Michael Jumper ef0cb1ee7a GUACAMOLE-598: Ignore if current user has no associated data. Authentication providers are not required to provide data for the users they authenticate. 2018-12-04 13:22:16 -08:00
Michael Jumper fc457c080d Merge 1.0.0 changes back to master. 2018-12-03 07:32:21 -08:00
Michael Jumper a967ffa41c GUACAMOLE-670: Merge changes correcting conflicting versions of SLF4J. 2018-12-03 07:30:23 -08:00
Michael Jumper 95b5fdccdc GUACAMOLE-656: Explicitly depend on maven-surefire-plugin 3.0.0-M1 due to SUREFIRE-1588. 2018-11-08 22:09:35 -08:00
Michael Jumper b355106c77 GUACAMOLE-220: Remove unnecessary explicit type parameters. 2018-11-08 20:11:17 -08:00
Michael Jumper a4d6f62df0 GUACAMOLE-220: Reword description of getGroupSearchFilter() to be less brain-meltingly difficult to read. 2018-11-08 19:55:49 -08:00
Michael Jumper 83033cad65 GUACAMOLE-220: Use JavaDoc "{@link Map}" to point to Map interface. 2018-11-08 19:45:25 -08:00
Michael Jumper 3c5594db2e GUACAMOLE-220: Group attribute "disabled" controls whether the group has any effect, not whether login is allowed. 2018-11-03 17:24:06 -07:00
Michael Jumper 2d6ba84a3d GUACAMOLE-220: Refactor default behavior of SimpleUser and SimpleUserGroup into AbstractUser and AbstractUserGroup. 2018-11-03 14:52:24 -07:00
Michael Jumper 90a6d8e371 GUACAMOLE-220: Clarify usage of SimpleUser and SimpleUserGroup. 2018-11-03 14:14:04 -07:00
Michael Jumper d533de118f GUACAMOLE-220: Add EMPTY_SET convenience constant to all core set interfaces. 2018-11-03 14:08:46 -07:00
Michael Jumper d10256e151 GUACAMOLE-220: Deprecate built-in support for storage of permissions in SimpleUser. Add convenience constructors for SimpleObjectPermissionSet. 2018-11-03 13:58:50 -07:00
Michael Jumper aa0c654231 GUACAMOLE-220: Retrieve user groups from LDAP. Take immediate group membership into account. 2018-11-03 12:41:54 -07:00
Michael Jumper bdc792603d GUACAMOLE-220: Add configuration property for setting the attributes which uniquely identify user groups within LDAP. 2018-11-03 12:41:54 -07:00
Michael Jumper 7c57b448bb GUACAMOLE-220: Define generic service for executing LDAP queries. Refactor existing services to remove common code. 2018-11-03 12:41:54 -07:00
Michael Jumper 929c7de2c9 GUACAMOLE-220: Add user group permissions to SimpleUser. 2018-11-03 12:41:54 -07:00
Michael Jumper 5362bc6708 GUACAMOLE-220: Add SimpleUserGroup (read-only UserGroup implementation with no members). 2018-11-03 12:41:54 -07:00
Michael Jumper 143c10b6ef GUACAMOLE-524: Correct handling of tokens within SimpleConnection. The copy of the configuration should be filtered, not the original, and token values need to actually be set. 2018-10-16 14:53:10 -07:00
Michael Jumper 333a8c411f GUACAMOLE-524: Provide convenience constructor for TokenFilter which initializes the filter with provided tokens. 2018-10-16 14:53:10 -07:00
Michael Jumper d79988d59e GUACAMOLE-96: Do not require TOTP for users that cannot enroll due to lack of permission to update their account. 2018-10-11 01:35:51 -07:00
Michael Jumper 13e2b06666 GUACAMOLE-524: Switch to "LDAP_" prefix for LDAP user attribute tokens. 2018-10-05 12:54:00 -07:00
Michael Jumper cb30b148b9 GUACAMOLE-524: Consistently generate token names from LDAP attributes with arbitrary naming conventions. 2018-10-05 12:47:26 -07:00
Michael Jumper 98bd3ead21 GUACAMOLE-524: Remove Attributes interface from AuthenticatedUser. Rely instead on tokens injected via decoration of connections. 2018-10-05 12:47:26 -07:00
Michael Jumper 0d7cff5f2d GUACAMOLE-524: Add convenience classes for injecting custom parameter tokens through decoration. 2018-10-05 12:47:26 -07:00
Michael Jumper 7a3f51be71 GUACAMOLE-524: Rename LDAP-specific AuthenticatedUser / UserContext to not conflict with guacamole-ext classes. 2018-10-05 12:47:26 -07:00
Michael Jumper 1210d5624c GUACAMOLE-524: Deprecate and replace StandardTokens with arbitrary tokens provided to Connectable.connect(). 2018-10-05 12:47:26 -07:00
Michael Jumper adb9aaa5e2 GUACAMOLE-220: Ignore missing user or group when retrieving permissions/memberships. 2018-10-05 11:56:42 -07:00
Michael Jumper 11c1d8c97e GUACAMOLE-96: Add protected convenience method for retrieving delegate object. 2018-10-05 10:36:47 -07:00
Michael Jumper e3c1b6ac98 GUACAMOLE-232: Mark key as implicitly pressed only when pressed due to another, identifiable key event. 2018-10-03 21:30:26 -07:00
Michael Jumper 9d8027c5cd GUACAMOLE-232: Correct inverted explicit/implicit logic. 2018-10-03 11:47:07 -07:00
Michael Jumper eead01944e GUACAMOLE-232: Rely on recentKeysym for keyup only when the guessed key doesn't seem to actually be pressed. 2018-10-03 10:29:39 -07:00
Michael Jumper 2ec7e48ca9 GUACAMOLE-232: Track whether keys were pressed implicitly. Automatically release all keys if only implicitly pressed keys remain. 2018-10-03 10:29:39 -07:00
Michael Jumper 6f0787f0c1 GUACAMOLE-232: Reset tracking of recent keysym after key is released. 2018-10-02 22:19:40 -07:00
Michael Jumper 8c096778bc GUACAMOLE-232: Fall back to using recent keysym only after failing to determine released key by keycode. 2018-10-02 22:19:15 -07:00
Michael Jumper 035813ff0b GUACAMOLE-232: Take best guess of key being pressed/released into account before assuming modifier states need to be resynced. 2018-10-02 22:18:17 -07:00
Michael Jumper aae17f3a9f GUACAMOLE-524: Accept only supported attributes via setAttributes(). Do not replace existing attributes. 2018-10-02 20:32:24 -07:00
Michael Jumper ea142d15ce GUACAMOLE-360: Add convenience function for testing user identity. 2018-10-01 11:46:34 -07:00
Michael Jumper ad937defa6 GUACAMOLE-360: Update active connection permission check to support user groups. 2018-10-01 11:35:32 -07:00
Michael Jumper 4d5196207b GUACAMOLE-220: Correct typo - "that status of" should be "the status of". 2018-09-30 23:12:49 -07:00
Michael Jumper f4ccf8ef62 GUACAMOLE-220: Remove effectively-redundant admin permission check. 2018-09-30 23:11:20 -07:00
Michael Jumper dee4e89ede GUACAMOLE-437: Remove erroneously-committed, non-breaking spaces (U+00A0) from source. 2018-09-29 15:04:28 -07:00
Michael Jumper 182f204c95 GUACAMOLE-635: Heap pollution is not possible within SimpleDirectory(ObjectType... objects).
From https://docs.oracle.com/javase/tutorial/java/generics/nonReifiableVarargsType.html#vulnerabilities:

"Heap pollution occurs when a variable of a parameterized type refers
to an object that is not of that parameterized type."

In this case, the parameterized type (ObjectType) and the array of that
type within this constructor are always used as their formal types.
2018-09-29 13:19:21 -07:00