Apache guacamole для windows

Содержание
  1. Apache Guacamoleв„ў
  2. Release documentation
  3. Release notes
  4. Automatic prompting for remote desktop credentials
  5. User group support for CAS and OpenID
  6. Changelog
  7. User interface / platform
  8. Docker images
  9. Authentication, integration, and storage
  10. Protocol support / guacd
  11. Internationalization
  12. Documentation
  13. General housekeeping and cleanup
  14. Deprecation / Compatibility notes
  15. Java API (guacamole-common) changes
  16. Implementations of GuacamoleSocket should now implement getProtocol()
  17. Extension API (guacamole-ext) changes
  18. Deprecation of getHistory() for User and Connection interfaces
  19. Guacamole protocol changes
  20. The new required instruction
  21. libguac API changes
  22. protocol_version added to guac_user_info structure
  23. Apache Guacamoleв„ў
  24. Which version should I download?
  25. Pre-Apache releases
  26. Apache Guacamoleв„ў
  27. Apache Guacamole 1.0.0
  28. Release documentation
  29. Release notes
  30. New features and improvements
  31. Support for user groups
  32. Clipboard integration with the Asynchronous Clipboard API
  33. Multi-factor authentication with Google Authenticator / TOTP
  34. Support for RADIUS authentication
  35. Support for creating ad-hoc connections
  36. Improved keyboard handling / Support for dead keys
  37. Automatic connection behavior
  38. Support for renaming RDP drive and printer
  39. Configurable terminal color schemes
  40. Optional recording of input events
  41. SSH host key verification
  42. Automatic detection of network issues
  43. Support for configuring Guacamole with environment variables
  44. Improvements to guacamole/guacd and guacamole/guacamole Docker images
  45. General usability improvements
  46. General improvements to terminal behavior
  47. Support for systemd
  48. Control of RDP bitmap and glyph caching
  49. Internationalization
  50. Additional RDP keymaps
  51. Spanish translation of web interface
  52. Bug fixes
  53. Hostname / desktop name regression
  54. General connection stability
  55. Issues with database authentication behavior and SQL queries
  56. Incorrect status reported for sessions closed by RDP server
  57. CAS authorization URI derived incorrectly
  58. Build issues for guacamole-server
  59. Fixes for guacenc behavior and protocol implementation
  60. Issues specific to Internet Explorer
  61. Use of deprecated navigator.getUserMedia()
  62. Incorrect documentation for RDP load-balance-info parameter
  63. Erroneous inclusion of “guaclog” binary in source tree
  64. Platform / API changes
  65. Java 8 or later is now required
  66. Guacamole no longer uses cookies
  67. Removal of NoAuth and other deprecated components
  68. Improvements to extension API
  69. Web application updated to AngularJS 1.6.9
  70. Improvements to JavaScript tunnel API
  71. Deprecation / Compatibility notes
  72. Java 8 or later is now required
  73. Database schema changes
  74. Hostname logging within database
  75. Removal of deprecated NoAuth extension
  76. Removal of deprecated properties
  77. Extension API changes
  78. Support for user groups
  79. Retrieval of user groups
  80. Effective group membership
  81. Effective permissions
  82. Exposing group membership
  83. The new decoration API
  84. Removal of deprecated GuacamoleHome and GuacamoleProperties classes
  85. Deprecation of SimpleUser convenience constructors
  86. libguac API changes
  87. guac_protocol_send_mouse() now requires additional parameters
  88. GUAC_INSTRUCTION_MAX_ELEMENTS macro definition changed
  89. Java API (guacamole-common) changes
  90. Removal of deprecated GuacamoleSession class
  91. Change in definition of GuacamoleHTTPTunnelServlet.sendError()
  92. JavaScript API changes
  93. Removal of deprecated Guacamole.Client.setClipboard() function
  94. Addition of Guacamole.Tunnel.State.UNSTABLE state
  95. Internal WebSocket tunnel implementation changes

Apache Guacamoleв„ў

Release documentation

Apache Guacamole is split into two subprojects: «guacamole-client», the HTML5 web application which serves the Guacamole client to users, and «guacamole-server», the remote desktop proxy which the web application communicates with. The source code for each of these may be downloaded below.

You must verify the integrity of any downloaded files using the OpenPGP signatures we provide with each release. The signatures should be verified against the KEYS file, which contains the OpenPGP keys of Apache Guacamole’s Release Managers. Checksums of each released file are also provided.

If you do not wish to build Apache Guacamole entirely from source, pre-built versions of the web application (.war) and all extensions are provided here in binary form for convenience. Please note that guacamole-server must still be built and installed from source.

Release notes

The 1.3.0 release features support for automatically prompting users for their remote desktop credentials, user group support for both CAS and OpenID, and several bug fixes. For a full list of all changes in this release, please see the changelog.

The 1.3.0 release is compatible with older 1.x components. You should upgrade older components to 1.3.0 when possible, however things should continue to work correctly in the interim:

Regardless of inter-component compatibility, there are changes in 1.3.0 which may affect downstream users of Guacamole’s APIs and the Guacamole protocol. Please see the deprecation / compatibility notes section for more information.

Automatic prompting for remote desktop credentials

Historically, Guacamole has required that remote desktop credentials either be stored alongside connection configuration, passed through from web application authentication (typically Active Directory), or retrieved interactively by the remote desktop itself.

In addition to these methods, Guacamole will now automatically prompt the user to enter any credentials not already provided by the administrator if those credentials are required.

User group support for CAS and OpenID

If using a CAS or OpenID identity provider to automatically sign in your users, user groups can now also be retrieved from the identity provider. Similar to the support already present for SAML, this support allows the admininstrator to define how user groups are exposed by the identity provider and allow those user groups to affect the permissions granted to their members within Guacamole.

Changelog

User interface / platform

Docker images

Authentication, integration, and storage

Protocol support / guacd

Internationalization

Documentation

General housekeeping and cleanup

Deprecation / Compatibility notes

Each 1.x release of Apache Guacamole should be compatible with components of older 1.x releases. This compatibility is intended at the Guacamole protocol level and at the extension level, but not necessarily at the API level. This means:

As of 1.3.0, the following changes have been made which affect compatibility with past releases:

Java API (guacamole-common) changes

Implementations of GuacamoleSocket should now implement getProtocol()

The required and argv instructions both refer to connection parameters by name. As it is the underlying protocol of a connection that determines the semantics of connection parameters, client implementations will commonly need to expose this information in some way. The mainline web application provided by Apache Guacamole is one such implementation.

A new getProtocol() function has been added to GuacamoleSocket to facilitate this, and implementations of GuacamoleSocket should aim to provide implementations of this function with that in mind.

Extension API (guacamole-ext) changes

Deprecation of getHistory() for User and Connection interfaces

The old getHistory() functions have now been deprecated in favor of newer functions that do support filtering. Implementations that provide getHistory() will continue to work, but should migrate to the new functions when possible.

Guacamole protocol changes

The new required instruction

To allow the server to request that the client provide credentials (or any other parameters), a new required instruction has been added to the Guacamole protocol. This instruction informs the client that one or more connection parameters need to be specified for the connection to continue. If the client indicated support for the required instruction during the initial connection handshake, the client is then expected to supply values for each of these parameters using argv streams.

libguac API changes

protocol_version added to guac_user_info structure

A new protocol_version member has been added to guac_user_info to allow implementations to make decisions based on the Guacamole protocol version in use, affecting the size of this structure.

Downstream usages of libguac which make use of guac_user or guac_user_info will need to be rebuilt to ensure that the structure sizes and memory offsets used are correct.

Copyright © 2020 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. The HTML5 shield logo has been modified from the original work of the World Wide Web Constortium (W3C), which is licensed under the Creative Commons Attribution 3.0 license.

Apache Guacamole, Guacamole, Apache, the Apache feather logo, and the Apache Guacamole project logo are trademarks of The Apache Software Foundation.

Источник

Apache Guacamoleв„ў

All recent Guacamole releases are listed here, along with several historical releases. Each release below is listed by the version of the overall software bundle and the date on which it was released. Clicking on the version number will take you to the release notes and downloads for that release, including a pre-built guacamole.war file and all associated source code.

Please be sure to read the installation instructions in the manual thoroughly. If you do not wish to build things from source, you can also install Guacamole using Docker.

Читайте также:  0x0000007b virtualbox windows xp

If you are looking for the absolute latest unreleased code (or extremely old code not archived here), please check our git repositories on GitHub.

Which version should I download?

Unless you already know that you need a very specific version (your custom or third-party extensions use an older version of the Guacamole API, for example), you should always download the most recent release. Guacamole development is very active, and recent releases will contain bug fixes and performance improvements that will be absent in older releases.

Version Summary Release Date
1.3.0 Automatic prompting for remote desktop credentials, user group support for CAS and OpenID, bug fixes. 2021-01-01
1.2.0 Support for SAML 2.0, Wake-on-LAN, and easy switching between active connections, numerous fixes for RDP, improvements to TOTP, database support, and behavior on iOS devices. 2020-06-28
1.1.0 Dynamic image quality, support for Kubernetes, migration to FreeRDP 2.0.0 and Apache Directory API, fixes and improvements to Docker images, terminal behavior, and user groups. 2020-01-29
1.0.0 User groups, improved clipboard integration, TOTP (Google Authenticator), RADIUS, dead keys. 2019-01-08
0.9.14 OpenID Connect single sign-on, SQL Server support, CAS «ClearPass», user login/logout history, fixes and improvements for RDP, clipboard, file transfer, and terminal emulation. 2018-01-18
0.9.13-incubating CAS single sign-on, fixes for VNC/RDP/SSH/telnet, in-browser playback of screen recordings, automatic connection failover, 256-color console codes. 2017-07-30
0.9.12-incubating Thumbnails as tab icons, HTTP header authentication, performance improvements, and fixes for printing, file transfer, and terminal emulation. 2017-04-01
0.9.11-incubating Two-factor authentication, password policies, improvements to Docker and LDAP. 2017-02-02
0.9.10-incubating Screen sharing, recording, improved file transfer, audio input, Docker support for LDAP. 2016-12-29

Pre-Apache releases

All releases below are from prior to Guacamole’s acceptance into the Incubator. They are not Apache Software Foundation releases, and are licensed under the MIT license.

Version Summary Release Date
0.9.9 Dynamic JPEG/WebP, improved LDAP support, central connection history, filterable connection/user lists. 2015-12-18
0.9.8 Multiple auth extensions, file browsing, VNC audio and file transfer, RDP performance flags. 2015-09-09
0.9.7 Simpler installation/configuration, theming support, Docker support, translations, multiple bug fixes. 2015-06-10
0.9.6 PostgreSQL support, database speed improvements, RDP memory fixes, session management. 2015-03-30
0.9.5 Fixes for iOS, regressions from 0.9.4, and printing issues. Scrollbar for SSH and telnet. 2015-02-16
0.9.4 Completely new interface, single-tab layout, WebSockets by default, simultaneous connections. 2015-01-06
0.9.3 Config file for guacd, improved keyboard, HTTP Basic auth, C0 control codes, bug fixes. 2014-09-30
0.9.2 Wide character support, automated telnet login, keyboard-interactive auth, bug fixes. 2014-07-21
0.9.1 Performance enhancements, improved UI, better mobile support, telnet, MySQL auth fixes 2014-05-23
0.8.4 MySQL auth fixes 2014-05-23
0.9.0 Adds support for file transfer, RemoteApp, public key auth, and improved error handling. 2014-03-28
0.8.3 LDAP support, connection grouping and balancing, improved performance, SSL support. 2013-08-28

Copyright © 2020 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. The HTML5 shield logo has been modified from the original work of the World Wide Web Constortium (W3C), which is licensed under the Creative Commons Attribution 3.0 license.

Apache Guacamole, Guacamole, Apache, the Apache feather logo, and the Apache Guacamole project logo are trademarks of The Apache Software Foundation.

Источник

Apache Guacamoleв„ў

Apache Guacamole 1.0.0 is an archived release, and was originally released on 2019-01-08. The latest release of Apache Guacamole is 1.3.0.

Apache Guacamole 1.0.0

Release documentation

Apache Guacamole is split into two subprojects: «guacamole-client», the HTML5 web application which serves the Guacamole client to users, and «guacamole-server», the remote desktop proxy which the web application communicates with. The source code for each of these may be downloaded below.

You must verify the integrity of any downloaded files using the OpenPGP signatures we provide with each release. The signatures should be verified against the KEYS file, which contains the OpenPGP keys of Apache Guacamole’s Release Managers. Checksums of each released file are also provided.

If you do not wish to build Apache Guacamole entirely from source, pre-built versions of the web application (.war) and all extensions are provided here in binary form for convenience. Please note that guacamole-server must still be built and installed from source.

Release notes

The 1.0.0 release features support for user groups, improved clipboard integration leveraging the Asynchronous Clipboard API, as well as support for TOTP (Google Authenticator), RADIUS, and dead keys.

This release contains changes which break compatibility with past releases. Please see the deprecation / compatibility notes section for more information.

New features and improvements

Support for user groups

Guacamole now supports granting permissions based on group membership. While this has been supported to a degree for some time via LDAP and the seeAlso attribute, groups can now be defined and used within a database, with LDAP and a database combined, or within other extensions using Guacamole’s extension API.

Clipboard integration with the Asynchronous Clipboard API

For browsers which implement the Asynchronous Clipboard API, Guacamole will now automatically synchronize the local and remote clipboards. Users will be prompted to grant clipboard access upon opening Guacamole, and Guacamole will synchronize the clipboard if access is granted.

This API has been implemented in Google Chrome since version 66, and other browsers will likely follow suit. The legacy synchronous clipboard API will continue to be used as a fallback for browsers that support clipboard access but lack support for the newer API (Internet Explorer).

Multi-factor authentication with Google Authenticator / TOTP

Guacamole now has support for TOTP as an additional authentication factor. TOTP (Time-based One-Time Password) is a standardized algorithm used for multi-factor authentication. With this new support, Guacamole may be used with any application or authentication device which supports the TOTP standard, including the popular Google Authenticator.

Support for RADIUS authentication

RADIUS support has been added, allowing Guacamole to delegate authentication to a RADIUS service like FreeRADIUS for validating credentials, enforcing multiple authentication factors, etc.

Instructions for building this support are provided in the manual.

Support for creating ad-hoc connections

An extension is now provided which allows users to create arbitrary, temporary connections through entering a URL. This ability can be quite convenient, as users need not create new connections through the administrative interface in order to quickly access a particular machine.

Be sure you understand the security implications of providing this level of access. A Guacamole connection implicitly has network and filesystem access to the Guacamole server, thus providing this ability is equivalent to granting your users those privileges.

Improved keyboard handling / Support for dead keys

Multiple improvements have been made to keyboard handling, including bug fixes for Mac and iOS and support for dead keys.

Automatic connection behavior

Guacamole will automatically connect upon login for users that have access to only a single connection, skipping the home screen. This feature has been tweaked slightly so that it applies only to non-administrative users. Users with access to Guacamole’s administrative interface will now see the home screen and will not be automatically connected.

Support for renaming RDP drive and printer

By default, the filesystem and printer made available within RDP connections are named “Guacamole Filesystem” and “Guacamole Printer” respectively. Support has been added to override these names with the drive-name and printer-name parameters respectively.

Configurable terminal color schemes

The Guacamole terminal now allows for finer control of terminal color schemes by allowing for the individual colors of a scheme to be customized through the existing color-scheme parameter. The behavior of this parameter is the same for both SSH and telnet.

Optional recording of input events

Guacamole has supported session recording for quite some time, but did not record input events (mouse movement/clicks, keyboard input, etc.). This meant that the mouse cursor could not be rendered in recording playback (as the mouse position information from mouse events was not included) and session recording could not be used for some auditing purposes that required logging of key events.

Читайте также:  Api windows что это такое

Options are now available for capturing input events during session recording. For security and privacy reasons, only mouse events are captured within session recordings by default. Capture of keyboard events can be manually enabled, and capture of mouse events can be manually disabled.

SSH host key verification

SSH host key verification is now implemented and can be enabled and configured within Guacamole. In the past, Guacamole has not performed any SSH host key checking, and version 1.0.0 introduces this capability.

For compatibility with past releases, this functionality is still disabled by default. If known host keys are not provided, Guacamole will continue to behave as it has in the past and will allow the connection to succeed, though a warning will be logged.

If host keys are provided (either in an ssh_known_hosts file within the GUACAMOLE_HOME directory on the server running guacd, or by passing the host-key parameter to the connection with the key of the specific server), host key checking will be strictly enforced and the connection will only succeed if the host key matches.

Automatic detection of network issues

The Guacamole web application will now periodically check the responsiveness of the network connection, displaying a warning if the network appears unstable.

Downstream web applications which leverage the Guacamole API should handle the Guacamole.Tunnel.State.UNSTABLE tunnel state in their tunnel’s onstatechange handler to provide similar behavior, if desired.

Support for configuring Guacamole with environment variables

Support has been added for specifying any of the properties supported in the GUACAMOLE_HOME/guacamole.properties file by setting environment variables that correspond to those properties. The name of the environment variable for any particular property is the name of the property in uppercase with all dashes replaced with underscores.

For security reasons, the enable-environment-properties property must be set to true for reading of properties from environment variables to be enabled.

Improvements to guacamole/guacd and guacamole/guacamole Docker images

Many improvements have been made to the Docker support files for building and running Guacamole within Docker containers. Most notable among these is that the base for the guacd Docker image has been changed from CentOS 7 to the latest Debian stable. This allows for more recent, but still stable, versions of libraries to be used to support the various protocols and features of guacd.

General usability improvements

Improvements to usability have been made in order to address issues reported by users. Guacamole now supports Ctrl-Alt-End as an alternative shortcut for sending Ctrl-Alt-Delete to remote systems. The zoom level of the client display can be specified more granularly, connections are easier to select within in the web interface, and guacd now provides a flag for printing the build version.

General improvements to terminal behavior

Compatibility of Guacamole’s terminal emulator has been improved, particularly when dealing with non-Linux operating systems. Parameters have been added for configuring the terminal type reported to the remote system, and for adjusting the control code sent for backspace. The terminal has also been adjusted to hide escape sequences and control codes that need not be supported but which were previously incorrectly printed to the screen.

Support for systemd

The guacamole-server build now includes an optional systemd init script to allow for automatic startup on distributions that have moved from traditional init scripts to systemd.

Control of RDP bitmap and glyph caching

Parameters have been added to RDP connections that allow for controlling how the RDP protocol behaves for caching bitmaps, glyphs, and other off-screen data. The default behavior remains unchanged, with caching of all of these items enabled, however these parameters are available to workaround issues if your RDP server handles such caching incorrectly.

Internationalization

Additional RDP keymaps

Several keymaps have been added or updated to better support RDP servers with differing keyboard layouts. As always, bear in mind that the client side of Guacamole is always independent of keyboard layout. Additional keyboard layouts for RDP are mainly of benefit for enabling the typing of certain characters if your RDP server does not support Unicode events, and to ensure correct translation of key event to RDP scancode if the keyboard layout of the RDP server is not the default (US English).

Spanish translation of web interface

The entire web interface has been translated into Spanish, including the on-screen keyboard. Spanish will automatically be selected if accessing Guacamole from a browser whose default language is set to Spanish. The language can also be manually selected within Guacamole’s preferences.

Bug fixes

Hostname / desktop name regression

An issue was corrected where the hostname or desktop name of VNC and RDP connections replaced the connection name on the tab or window title in the browser. The connection name is now always displayed for VNC and RDP.

General connection stability

Several issues potentially affecting connection stability have been addressed. Additional safeguard measures have also been put in place to ensure that connection processes are automatically killed and cleaned up if an unknown issue causes the process to become unresponsive.

Issues with database authentication behavior and SQL queries

The new SQL Server support introduced with 0.9.14 leveraged SQL syntax that was not compatible with SQL Server 2008 and later, and contained a bug which resulted in the login history query failing after several history entries existed. These issues have been fixed.

A usability issue where users with disabled accounts would be shown a home screen (albeit entirely blank) has also been fixed, and handling of the hostname/address logged for user and connection access history has been updated to be consistent across both underlying tables.

Incorrect status reported for sessions closed by RDP server

Guacamole would previously incorrectly report that an RDP server was unavailable when the connection was actually closed by the RDP server due to another user starting a conflicting desktop session. As the web application will automatically attempt to reconnect if the RDP server is reported as unavailable (under the assumption that the condition is transient and the server may eventually become available), this could cause users to repeatedly kick each other out.

This has been fixed for 1.0.0. Disconnects due to conflicting RDP sessions should now be handled correctly.

CAS authorization URI derived incorrectly

Guacamole’s CAS authentication has been corrected to more properly comply with the CAS specification. The /login portion of the URI used for logins is required by the specification but was previously omitted by Guacamole. This is tolerated by some CAS implementations, but not by all. CAS implementations which require this should now work as expected with Guacamole.

Build issues for guacamole-server

Issues which broke the guacamole-server build on some platforms have now been fixed. In particular, Guacamole should now build correctly on systems having GCC 7.

Fixes for guacenc behavior and protocol implementation

Previous releases of the “guacenc” utility (part of guacamole-server) produced incorrect error messages and erratic behavior under certain conditions. These issues have been corrected.

Issues specific to Internet Explorer

Several issues specific to Internet Explorer which either caused problems or had the potential to impact compatibility across versions of Internet Explorer have been fixed.

Use of deprecated navigator.getUserMedia()

The navigator.getUserMedia() method used by Guacamole’s support for audio input has been deprecated. Guacamole has been updated to no longer rely upon that method.

Incorrect documentation for RDP load-balance-info parameter

Erroneous inclusion of “guaclog” binary in source tree

The “guaclog” binary was accidentally included in the source tree of the git repository. It has been removed.

Platform / API changes

Java 8 or later is now required

As noted in the compatibility section below, the Guacamole web application now requires Java version 1.8 or later for both the build and at runtime. The core Java library, guacamole-common, remains compatible with Java 1.6, however Java 1.8 is still required for the overall guacamole-client build.

Читайте также:  Smbclient mount windows share

Guacamole no longer uses cookies

The Guacamole web application no longer uses cookies at all, instead relying on the browser’s local storage.

Removal of NoAuth and other deprecated components

Several components that were previously marked as deprecated have been removed entirely from the code base. This includes the NoAuth extension, several classes and functions, and several old properties. The use of any of these components would previously have resulted in warnings. They will no longer be available from this point forward, and continuing to use the deprecated properties will silently have no effect.

Improvements to extension API

The extension API has been updated to make development and maintenance of extensions easier and more consistent. The error status codes sent by the REST API are now derived from the exceptions thrown, allowing extensions to control the exact code sent. Dependency precedence has been updated so that extensions always see the classes they bundle, even if the web application bundles a different version of the same class. Base implementations of the UserContext and AuthenticationProvider interfaces have been provided, removing the need to fully implement these interfaces when writing an extension.

Web application updated to AngularJS 1.6.9

The AngularJS library included with the Guacamole web application was updated from 1.3.16 to 1.6.9. Several parts of the web application were reworked for compatibility with this update, including the handling HTTP requests and responses.

Improvements to JavaScript tunnel API

The tunnel implementations provided by Guacamole’s JavaScript API have been updated to allow arbitrary HTTP headers to be included in the connection request (where supported by the underlying transport), and to allow the same instance of the tunnel to be reused following disconnect.

Deprecation / Compatibility notes

As of 1.0.0, the following changes have been made which affect compatibility with past releases:

Java 8 or later is now required

Most of the Java components of the Guacamole Client have been updated to require Java 1.8 for both compile and runtime. This decision was made based on the fact that many support libraries are moving toward requiring later versions of Java, that Java 1.8 has been out and stable for many years, and that Java 1.6 and 1.7 have ceased receiving public updates.

The only exception to this is the core Java API, guacamole-common, which continues to maintain compatibility with Java 1.6.

Database schema changes

Significant changes have been made to the schemas for all of the JDBC authentication modules (MySQL, PostgreSQL, and SQL Server). Among those changes are the addition of support for user groups and the changes required to support those within the database modules (including the “entity” as an overall type for both users and groups).

Users of any of the database authentication modules will need to run the upgrade-pre-1.0.0.sql script specific to their chosen database as part of the move from earlier versions of Guacamole to 1.0.0. More thorough instructions for this process can be found in the database authentication documentation.

Hostname logging within database

The hostname/address of users logged by the database authentication backend is now determined entirely by the servlet container. The database authentication will not manually parse the X-Forwarded-For header, and will instead rely on the servlet container to perform any such parsing.

Logging of hostnames/addresses by Guacamole during the authentication process (as would be parsed by tools like fail2ban) is unchanged, however you will need to update the pattern if RemoteIpValve or similar are used, as the address of interest will likely be the rightmost address. If the user is not behind any additional, untrusted proxies, the address of interest will be the only address.

Removal of deprecated NoAuth extension

The NoAuth extension has been deprecated since 0.9.13-incubating, and has now been removed from Guacamole’s codebase.

Removal of deprecated properties

The following properties have been deprecated for quite some time, and have been removed in the 1.0.0 release.

Prior to the 1.0.0 release a warning would be logged regarding the deprecation of these properties. As of this release, these properties will be silently ignored.

Extension API changes

Support for user groups

Retrieval of user groups

The UserContext interface now defines a getUserGroupDirectory() function which returns a Directory providing access to all user groups. If your extension does not provide user groups, it can simply return an empty SimpleDirectory :

Effective group membership

To allow extensions to take group membership into account, even when that membership is dictated by a different extension, the AuthenticatedUser class now defines a getEffectiveGroups() function. This function should return the identifiers of all user groups that apply to the current user. If support for user groups is not implemented by the extension, simply return an empty set of strings:

Effective permissions

The User interface now provides a getEffectivePermissions() function which should return an implementation of Permissions which exposes the permissions that apply to the user, including permissions which may be inherited through group membership. If inheritance of permissions is not implemented by your extension, this function can simply return this (as User extends Permissions ):

Exposing group membership

The new decoration API

Implementations of AuthenticationProvider which extend AbstractAuthenticationProvider need not implement these functions as default implementations are provided. Implementations which do not extend AbstractAuthenticationProvider and which do not decorate the UserContext of other extensions should simply return the original UserContext :

Removal of deprecated GuacamoleHome and GuacamoleProperties classes

Deprecation of SimpleUser convenience constructors

With the increasing number of permission sets available for both users and user groups, the old convenience constructors which provided parameters for these permission sets for the SimpleUser implementation of the User interface have been deprecated for the sake of API simplicity and consistency.

Implementations which use these constructors of SimpleUser should migrate to extending SimpleUser and overriding the applicable getters instead. The deprecated constructors will continue to work as before, however their use will result in deprecation warnings, and they will eventually be removed from the API.

libguac API changes

guac_protocol_send_mouse() now requires additional parameters

GUAC_INSTRUCTION_MAX_ELEMENTS macro definition changed

The value of the GUAC_INSTRUCTION_MAX_ELEMENTS has been increased from 64 to 128. This should not affect whether existing code builds against libguac, however it does affect the size of the guac_parser structure such that it will not be binary-compatible with older versions of libguac. The system linker should take this into account automatically.

Java API (guacamole-common) changes

Removal of deprecated GuacamoleSession class

The GuacamoleSession class has been deprecated since 0.9.9 and has now been removed from the API. Downstream usages of this class should simply be removed; it is entirely unnecessary and has had no effect since 0.9.9.

Change in definition of GuacamoleHTTPTunnelServlet.sendError()

JavaScript API changes

Removal of deprecated Guacamole.Client.setClipboard() function

Addition of Guacamole.Tunnel.State.UNSTABLE state

Code which handles changes in tunnel state may need to be updated to take this additional state into account if it does not currently ignore unknown states, or that code would benefit from explicitly handling the unstable condition.

Internal WebSocket tunnel implementation changes

The WebSocket tunnel ( Guacamole.WebSocketTunnel ) now uses the internal tunnel opcode to send “ping” requests which the server side of the tunnel must respond to with an identical instruction to verify connection stability. Third-party reimplementations of the WebSocket tunnel will need to be updated to do the same.

Copyright © 2020 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. The HTML5 shield logo has been modified from the original work of the World Wide Web Constortium (W3C), which is licensed under the Creative Commons Attribution 3.0 license.

Apache Guacamole, Guacamole, Apache, the Apache feather logo, and the Apache Guacamole project logo are trademarks of The Apache Software Foundation.

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector