You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by vn...@apache.org on 2019/01/05 03:07:06 UTC

[01/10] guacamole-website git commit: Add draft release notes for first RC of 1.0.0.

Repository: guacamole-website
Updated Branches:
  refs/heads/master 572bafdfa -> 0e7f3de02


Add draft release notes for first RC of 1.0.0.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/04444fc7
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/04444fc7
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/04444fc7

Branch: refs/heads/master
Commit: 04444fc74a5a7e661ca34caa88087eedb32e8717
Parents: 572bafd
Author: Michael Jumper <mj...@apache.org>
Authored: Sun Dec 9 23:08:05 2018 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Mon Dec 31 16:31:07 2018 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 409 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 409 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/04444fc7/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
new file mode 100644
index 0000000..f76da78
--- /dev/null
+++ b/_releases/1.0.0.md
@@ -0,0 +1,409 @@
+---
+
+released: false
+title: 1.0.0
+date: 2018-12-20 22:00:00 -0800
+summary: >
+    User groups, improved clipboard integration, TOTP (Google Authenticator),
+    RADIUS, dead keys.
+
+artifact-root: "https://dist.apache.org/repos/dist/dev/"
+checksum-root: "https://dist.apache.org/repos/dist/dev/"
+download-path: "guacamole/1.0.0-RC1/"
+
+source-dist:
+    - "source/guacamole-client-1.0.0.tar.gz"
+    - "source/guacamole-server-1.0.0.tar.gz"
+
+binary-dist:
+    - "binary/guacamole-1.0.0.war"
+    - "binary/guacamole-auth-cas-1.0.0.tar.gz"
+    - "binary/guacamole-auth-duo-1.0.0.tar.gz"
+    - "binary/guacamole-auth-header-1.0.0.tar.gz"
+    - "binary/guacamole-auth-jdbc-1.0.0.tar.gz"
+    - "binary/guacamole-auth-ldap-1.0.0.tar.gz"
+    - "binary/guacamole-auth-openid-1.0.0.tar.gz"
+    - "binary/guacamole-auth-quickconnect-1.0.0.tar.gz"
+    - "binary/guacamole-auth-totp-1.0.0.tar.gz"
+
+documentation:
+    "Manual"              : "/doc/1.0.0/gug"
+    "guacamole-common"    : "/doc/1.0.0/guacamole-common"
+    "guacamole-common-js" : "/doc/1.0.0/guacamole-common-js"
+    "guacamole-ext"       : "/doc/1.0.0/guacamole-ext"
+    "libguac"             : "/doc/1.0.0/libguac"
+
+---
+
+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](#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.
+
+ * [GUACAMOLE-220](https://issues.apache.org/jira/browse/GUACAMOLE-220) - Implement user groups
+
+### Clipboard integration with the Asynchronous Clipboard API
+
+For browsers which implement the [Asynchronous Clipboard
+API](https://www.w3.org/TR/clipboard-apis/#async-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](https://developers.google.com/web/updates/2018/03/clipboardapi), 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).
+
+ * [GUACAMOLE-559](https://issues.apache.org/jira/browse/GUACAMOLE-559) - Add support for the new Asynchronous Clipboard API
+
+### Multi-factor authentication with Google Authenticator / TOTP
+
+Guacamole now has support for TOTP as an additional authentication factor.
+TOTP ([Time-based One-Time Password](https://en.wikipedia.org/wiki/Time-based_One-time_Password_algorithm))
+is a [standardized algorithm](https://tools.ietf.org/html/rfc6238) 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.
+
+ * [GUACAMOLE-96](https://issues.apache.org/jira/browse/GUACAMOLE-96) - Two factor authentication with 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.
+
+Because the RADIUS library used by this support is licensed under the LGPL, a
+convenience binary for this extension is not provided. If you wish to use the
+RADIUS support, you will need to [build guacamole-client from
+source](/doc/1.0.0/gug/installing-guacamole.html) and explicitly enable that
+part of the build with `-P`:
+
+    mvn package -Plgpl-extensions
+
+Instructions for building this support are [provided in the
+manual](/doc/1.0.0/gug/radius-auth.html).
+
+ * [GUACAMOLE-197](https://issues.apache.org/jira/browse/GUACAMOLE-197) - Implement Support for RADIUS Authentication
+
+### 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](/doc/1.0.0/gug/adhoc-connections.html). 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.
+
+ * [GUACAMOLE-38](https://issues.apache.org/jira/browse/GUACAMOLE-38) - On-Demand connection
+
+### Improved keyboard handling / Support for dead keys
+
+ * [GUACAMOLE-161](https://issues.apache.org/jira/browse/GUACAMOLE-161) - Handle CapsLock events properly on Mac OS
+ * [GUACAMOLE-232](https://issues.apache.org/jira/browse/GUACAMOLE-232) - Stuck keys iPad/Bluetooth keyboard (Return/Backspace/Space)
+ * [GUACAMOLE-352](https://issues.apache.org/jira/browse/GUACAMOLE-352) - Add support for dead keys
+ * [GUACAMOLE-447](https://issues.apache.org/jira/browse/GUACAMOLE-447) - Certain keys fail for external keyboards on iOS Safari
+
+### Automatic connection behavior
+
+ * [GUACAMOLE-508](https://issues.apache.org/jira/browse/GUACAMOLE-508) - Automatically connect only if user lacks access to settings
+
+### Support for renaming RDP drive and printer 
+
+ * [GUACAMOLE-445](https://issues.apache.org/jira/browse/GUACAMOLE-445) - Allow RDP printer name to be configured
+ * [GUACAMOLE-446](https://issues.apache.org/jira/browse/GUACAMOLE-446) - Allow RDP drive name to be configured
+ * [GUACAMOLE-523](https://issues.apache.org/jira/browse/GUACAMOLE-523) - Use client_name for redirected devices
+
+### Configurable terminal color schemes
+
+ * [GUACAMOLE-470](https://issues.apache.org/jira/browse/GUACAMOLE-470) - Make individual terminal colors configurable through "color-scheme" parameter
+
+### Optional recording of input events
+
+ * [GUACAMOLE-313](https://issues.apache.org/jira/browse/GUACAMOLE-313) - Allow input events within session recording
+
+### SSH host key verification
+
+ * [GUACAMOLE-527](https://issues.apache.org/jira/browse/GUACAMOLE-527) - Add parameter for specifying known SSH/SFTP server host key
+
+### Automatic detection of network issues
+
+ * [GUACAMOLE-567](https://issues.apache.org/jira/browse/GUACAMOLE-567) - Network connection problem acknowledgement/feedback
+
+### Support for configuring Guacamole with environment variables
+
+ * [GUACAMOLE-464](https://issues.apache.org/jira/browse/GUACAMOLE-464) - Extension configuration properties from the OS environment
+
+### Improvements to `guacamole/guacd` and `guacamole/guacamole` Docker images
+
+ * [GUACAMOLE-42](https://issues.apache.org/jira/browse/GUACAMOLE-42) - Support setting guacd log level on Docker container
+ * [GUACAMOLE-407](https://issues.apache.org/jira/browse/GUACAMOLE-407) - Update guacd Docker image to build against more recent dependencies
+ * [GUACAMOLE-450](https://issues.apache.org/jira/browse/GUACAMOLE-450) - Change Tomcat Version in Dockerfile to major release
+ * [GUACAMOLE-553](https://issues.apache.org/jira/browse/GUACAMOLE-553) - Docker image need a new MySQL JDBC driver for MySQL 8.0
+
+### General usability improvements
+
+ * [GUACAMOLE-113](https://issues.apache.org/jira/browse/GUACAMOLE-113) - Add Ctrl+Alt+Del hotkey
+ * [GUACAMOLE-152](https://issues.apache.org/jira/browse/GUACAMOLE-152) - Difficult to reach specific zoom levels
+ * [GUACAMOLE-304](https://issues.apache.org/jira/browse/GUACAMOLE-304) - Clicking area to open connection
+ * [GUACAMOLE-351](https://issues.apache.org/jira/browse/GUACAMOLE-351) - Version parameter for guacd
+
+### General improvements to terminal behavior
+
+ * [GUACAMOLE-269](https://issues.apache.org/jira/browse/GUACAMOLE-269) - Add support for alternative backspace/delete control codes
+ * [GUACAMOLE-564](https://issues.apache.org/jira/browse/GUACAMOLE-564) - Hide APC escape sequence for terminal
+ * [GUACAMOLE-565](https://issues.apache.org/jira/browse/GUACAMOLE-565) - Add terminal type parameter
+
+### Support for systemd
+
+ * [GUACAMOLE-30](https://issues.apache.org/jira/browse/GUACAMOLE-30) - Add Systemd init script for guacd-server
+
+### Control of RDP bitmap and glyph caching
+
+ * [GUACAMOLE-448](https://issues.apache.org/jira/browse/GUACAMOLE-448) - Add parameters for controlling RDP bitmap/glyph/off-screen caching
+
+Internationalization
+--------------------
+
+### Additional RDP keymaps
+
+ * [GUACAMOLE-233](https://issues.apache.org/jira/browse/GUACAMOLE-233) - Add Spanish keymap for RDP
+ * [GUACAMOLE-273](https://issues.apache.org/jira/browse/GUACAMOLE-273) - Add Portuguese Brazilian keymap for RDP
+ * [GUACAMOLE-434](https://issues.apache.org/jira/browse/GUACAMOLE-434) - Add UK English keymap for RDP
+ * [GUACAMOLE-481](https://issues.apache.org/jira/browse/GUACAMOLE-481) - Add Turkish Q keymap for RDP
+ * [GUACAMOLE-517](https://issues.apache.org/jira/browse/GUACAMOLE-517) - Print screen key definition missing from RDP base keymap
+
+### Spanish translation of web interface
+
+ * [GUACAMOLE-463](https://issues.apache.org/jira/browse/GUACAMOLE-463) - Spanish translation for Guacamole client
+ * [GUACAMOLE-530](https://issues.apache.org/jira/browse/GUACAMOLE-530) - Add Spanish on screen keyboard
+
+Bug fixes
+---------
+
+### Hostname / desktop name regression
+
+ * [GUACAMOLE-502](https://issues.apache.org/jira/browse/GUACAMOLE-502) - Hostname / desktop name replaces connection name
+
+### General connection stability
+
+ * [GUACAMOLE-324](https://issues.apache.org/jira/browse/GUACAMOLE-324) - Incorrect buffer used in socket write
+ * [GUACAMOLE-384](https://issues.apache.org/jira/browse/GUACAMOLE-384) - Terminal writes during disconnect may segfault
+ * [GUACAMOLE-424](https://issues.apache.org/jira/browse/GUACAMOLE-424) - VNC client segfaults if provided password is incorrect
+ * [GUACAMOLE-489](https://issues.apache.org/jira/browse/GUACAMOLE-489) - Secondary socket of "tee" socket is not threadsafe
+ * [GUACAMOLE-533](https://issues.apache.org/jira/browse/GUACAMOLE-533) - Automatically kill wayward guacd processes
+
+### Issues with database authentication behavior and SQL queries
+
+ * [GUACAMOLE-505](https://issues.apache.org/jira/browse/GUACAMOLE-505) - Individual user query fails after two or more login history entries exist
+ * [GUACAMOLE-525](https://issues.apache.org/jira/browse/GUACAMOLE-525) - Creating user results in "Incorrect syntax near 'LIMIT'"
+ * [GUACAMOLE-529](https://issues.apache.org/jira/browse/GUACAMOLE-529) - Despite the fact user account is disabled, user account can access to a welcome blank screen
+ * [GUACAMOLE-540](https://issues.apache.org/jira/browse/GUACAMOLE-540) - Discrepancy with remote_host between tables
+
+### Incorrect status reported for sessions closed by RDP server
+
+ * [GUACAMOLE-484](https://issues.apache.org/jira/browse/GUACAMOLE-484) - UPSTREAM_UNAVAILABLE incorrectly reported for sessions closed by RDP server
+
+### CAS authorization URI derived incorrectly
+
+ * [GUACAMOLE-457](https://issues.apache.org/jira/browse/GUACAMOLE-457) - CAS authentication provider omits login URI
+
+### Build issues for guacamole-server
+
+ * [GUACAMOLE-485](https://issues.apache.org/jira/browse/GUACAMOLE-485) - pango is required with pango support disabled
+ * [GUACAMOLE-500](https://issues.apache.org/jira/browse/GUACAMOLE-500) - Terminal build fails against GCC 7
+
+### Fixes for guacenc behavior and protocol implementation
+
+ * [GUACAMOLE-307](https://issues.apache.org/jira/browse/GUACAMOLE-307) - guacenc reports "Layer index out of bounds: -1"
+ * [GUACAMOLE-482](https://issues.apache.org/jira/browse/GUACAMOLE-482) - Return value of guacenc_video_flush_frame() not handled
+ * [GUACAMOLE-490](https://issues.apache.org/jira/browse/GUACAMOLE-490) - guacenc does not take channel mask into account for image streams
+
+### Issues specific to Internet Explorer
+
+ * [GUACAMOLE-316](https://issues.apache.org/jira/browse/GUACAMOLE-316) - IE Compatibility mode doesn't work
+ * [GUACAMOLE-347](https://issues.apache.org/jira/browse/GUACAMOLE-347) - IE may lack window.location.origin
+ * [GUACAMOLE-348](https://issues.apache.org/jira/browse/GUACAMOLE-348) - Stream download iframe may not exist in DOM at time of removal
+
+### Use of deprecated `navigator.getUserMedia()`
+
+ * [GUACAMOLE-237](https://issues.apache.org/jira/browse/GUACAMOLE-237) - navigator.getUserMedia() deprecated
+
+### Incorrect documentation for RDP `load-balance-info` parameter
+
+ * [GUACAMOLE-427](https://issues.apache.org/jira/browse/GUACAMOLE-427) - RDP "load-balance-info" parameter incorrectly documented
+
+### Erroneous inclusion of "guaclog" binary in source tree
+
+ * [GUACAMOLE-492](https://issues.apache.org/jira/browse/GUACAMOLE-492) - guaclog binary erroneously included in source tree
+
+Platform / API changes
+----------------------
+
+### **Java 8 or later is now required**
+
+ * [GUACAMOLE-497](https://issues.apache.org/jira/browse/GUACAMOLE-497) - Ensure guacamole-client source is compatible with Java 9
+ * [GUACAMOLE-635](https://issues.apache.org/jira/browse/GUACAMOLE-635) - Build against and require Java 1.8
+
+### Guacamole no longer uses cookies
+
+ * [GUACAMOLE-549](https://issues.apache.org/jira/browse/GUACAMOLE-549) - Store auth token within localStorage
+
+### Removal of NoAuth and other deprecated components
+
+ * [GUACAMOLE-493](https://issues.apache.org/jira/browse/GUACAMOLE-493) - Remove the NoAuth extension entirely
+ * [GUACAMOLE-494](https://issues.apache.org/jira/browse/GUACAMOLE-494) - Remove support for old, deprecated properties
+ * [GUACAMOLE-495](https://issues.apache.org/jira/browse/GUACAMOLE-495) - Remove support for old, deprecated portions of API
+
+### Improvements to extension API
+
+ * [GUACAMOLE-499](https://issues.apache.org/jira/browse/GUACAMOLE-499) - REST API Error Codes should come from GuacamoleStatus
+ * [GUACAMOLE-541](https://issues.apache.org/jira/browse/GUACAMOLE-541) - Webapp dependencies take precedence over bundled extension dependencies
+ * [GUACAMOLE-542](https://issues.apache.org/jira/browse/GUACAMOLE-542) - Provide base implementations of UserContext and AuthenticationProvider
+ * [GUACAMOLE-566](https://issues.apache.org/jira/browse/GUACAMOLE-566) - Add RESTExceptionWrapper support for extensions
+
+### Web application updated to AngularJS 1.6.9
+
+ * [GUACAMOLE-526](https://issues.apache.org/jira/browse/GUACAMOLE-526) - Update Guacamole-Client Webapp to Angular 1.6.9
+
+### Improvements to Java / JavaScript tunnel API
+
+ * [GUACAMOLE-431](https://issues.apache.org/jira/browse/GUACAMOLE-431) - Tunnel implementations handles close only once
+ * [GUACAMOLE-437](https://issues.apache.org/jira/browse/GUACAMOLE-437) - Allow to configure custom headers for Guacamole tunnels
+
+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**
+-----------------------------------
+
+TODO
+
+Database schema changes
+-----------------------
+
+The MySQL, PostgreSQL, and SQL Server schemas have changed, ...
+
+Users of the database authentication will need to run the
+`upgrade-pre-1.0.0.sql` script specific to their chosen database.
+
+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.
+
+If proxying Guacamole, the configuration of your servlet container should be
+updated to handle the headers set by your proxy. For Apache Tomcat, this is
+accomplished with a [`RemoteIpValve`](https://tomcat.apache.org/tomcat-8.5-doc/api/org/apache/catalina/valves/RemoteIpValve.html)
+in your `server.xml`.
+
+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
+--------------------------------------
+
+TODO
+
+Removal of deprecated properties
+--------------------------------
+
+* `basic-user-mapping`
+* `mysql-disallow-simultaneous-connections`
+* `mysql-disallow-duplicate-connections`
+* `postgresql-disallow-simultaneous-connections`
+* `postgresql-disallow-duplicate-connections`
+
+TODO
+
+Extension API changes
+---------------------
+
+### Support for user groups
+
+TODO
+
+### The new decoration API
+
+TODO
+
+### Removal of deprecated `GuacamoleHome` and `GuacamoleProperties` classes
+
+TODO
+
+### Deprecation of `SimpleUserDirectory`, `SimpleConnectionDirectory`, and `SimpleConnectionGroupDirectory` classes
+
+TODO (Replaced by `SimpleDirectory`)
+
+### Deprecation of `SimpleUser` convenience constructors
+
+TODO
+
+libguac API changes
+-------------------
+
+### `guac_protocol_send_mouse()` now requires additional parameters
+
+TODO
+
+### `GUAC_INSTRUCTION_MAX_ELEMENTS` macro definition changed
+
+TODO (Affects size of `guac_parser` as well as any code referencing that macro)
+
+Java API (guacamole-common) changes
+-----------------------------------
+
+### Removal of deprecated `GuacamoleSession` class
+
+TODO
+
+### Change in definition of `GuacamoleHTTPTunnelServler.sendError()`
+
+TODO
+
+JavaScript API changes
+----------------------
+
+### Removal of deprecated `GuacamoleClient.setClipboard()` function
+
+TODO
+
+### Addition of `Guacamole.Tunnel.State.UNSTABLE` state
+
+TODO (Implementations of `onstatechange` may need to take this into account if unknown statuses are not simply ignored)
+
+### Internal WebSocket tunnel implementation changes
+
+TODO (New use of internal tunnel opcode for connection stability "ping" will affect third-party reimplementations of Guacamole's WebSocket tunnel)
+


[03/10] guacamole-website git commit: Add links to documentation where applicable.

Posted by vn...@apache.org.
Add links to documentation where applicable.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/26d79b03
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/26d79b03
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/26d79b03

Branch: refs/heads/master
Commit: 26d79b03a48b321079ae196d6de9a82413528b22
Parents: 6f785e1
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Jan 4 10:42:20 2019 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Jan 4 11:57:28 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 134 +++++++++++++++++++++++++++---------------------
 1 file changed, 76 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/26d79b03/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index 08f33cc..111dc60 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -196,10 +196,10 @@ matches.
 ### 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.
+[`GUACAMOLE_HOME/guacamole.properties`](/doc/1.0.0/gug/configuring-guacamole.html#initial-setup)
+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.
@@ -378,9 +378,9 @@ that method.
 
 ### Incorrect documentation for RDP `load-balance-info` parameter
 
-The `load-balance-info` parameter was incorrectly documented as
-`load-balancing-info`. The correct parameter name is indeed
-`load-balance-info`. This has been fixed in the documentation.
+The [`load-balance-info` parameter](/doc/1.0.0/gug/configuring-guacamole.html#rdp-connection-broker)
+was incorrectly documented as `load-balancing-info`. The correct parameter name
+is indeed `load-balance-info`. This has been fixed in the documentation.
 
  * [GUACAMOLE-427](https://issues.apache.org/jira/browse/GUACAMOLE-427) - RDP "load-balance-info" parameter incorrectly documented
 
@@ -432,9 +432,11 @@ 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 `UserContext` and
-`AuthenticationProvider` interfaces have been provided, removing the need to
-fully implement these interfaces when writing an extension.
+different version of the same class. Base implementations of the
+[`UserContext`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html)
+and [`AuthenticationProvider`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html)
+interfaces have been provided, removing the need to fully implement these
+interfaces when writing an extension.
 
  * [GUACAMOLE-499](https://issues.apache.org/jira/browse/GUACAMOLE-499) - REST API Error Codes should come from GuacamoleStatus
  * [GUACAMOLE-541](https://issues.apache.org/jira/browse/GUACAMOLE-541) - Webapp dependencies take precedence over bundled extension dependencies
@@ -491,8 +493,8 @@ required to support those within the database modules (including the
 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 [`JDBC Authentication`]
-(http://guacamole.apache.org/doc/gug/jdbc-auth.html) documentation.
+instructions for this process can be found in the
+[database authentication documentation](/doc/gug/jdbc-auth.html).
 
 Hostname logging within database
 --------------------------------
@@ -543,18 +545,21 @@ Extension API changes
 ### Support for user groups
 
 As noted above, one of the major changes in this release is the addition of
-support for user groups. These changes center around the new `UserGroup`
+support for user groups. These changes center around the new
+[`UserGroup`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html)
 interface and functions for accessing instances of that interface. Note that if
-you are using the abstract base classes `AbstractUserContext` and
-`AbstractUser`, little to no changes will be necessary as default
-implementations of the required new functions have been provided.
+you are using the abstract base classes [`AbstractUserContext`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html)
+and [`AbstractUser`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html),
+little to no changes will be necessary as default implementations of the
+required new functions have been provided.
 
 #### Retrieval of user groups
 
-The `UserContext` interface now defines a
-`getUserGroupDirectory()` function which returns a `Directory<UserGroup>`
+The [`UserContext`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html)
+interface now defines a [`getUserGroupDirectory()`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--)
+function which returns a [`Directory<UserGroup>`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html)
 providing access to all user groups. If your extension does not provide user
-groups, it can simply return an empty `SimpleDirectory<UserGroup>`:
+groups, it can simply return an empty [`SimpleDirectory<UserGroup>`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html):
 
     @Override
     public Object getUserGroupDirectory() {
@@ -564,10 +569,12 @@ groups, it can simply return an empty `SimpleDirectory<UserGroup>`:
 #### 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 `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:
+membership is dictated by a different extension, the
+[`AuthenticatedUser`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html)
+class now defines a [`getEffectiveGroups()`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--)
+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:
 
     @Override
     public Set<String> getEffectiveUserGroups() {
@@ -576,12 +583,13 @@ user groups is not implemented by the extension, simply return an empty set of s
 
 #### 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 inheritence of permissions is not implemented by your
-extension, this function can simply return `this` (as `User` extends
-`Permissions`):
+The [`User`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html)
+interface now provides a [`getEffectivePermissions()`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html#getEffectivePermissions--)
+function which should return an implementation of [`Permissions`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html)
+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`):
 
     @Override
     public Permissions getEffectivePermissions() {
@@ -590,14 +598,17 @@ extension, this function can simply return `this` (as `User` extends
 
 #### Exposing group membership
 
-The `User` and `UserGroup` interfaces provide multiple functions for retrieving
-parent groups and child objects, if applicable. Existing implementations of the
-`User` interface which do not extend `AbstractUser` will need to implement
-`getUserGroups()`, a function which retrieves the immediate parent groups of
-the user. The returned `RelatedObjectSet` should allow for manipulation of the
-group relationship if the extension allows such manipulation (and if the
-current user has permission to do so). Extensions which do not implement user
-groups can simply return an empty set:
+The [`User`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html)
+and [`UserGroup`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html)
+interfaces provide multiple functions for retrieving parent groups and child
+objects, if applicable. Existing implementations of the `User` interface which
+do not extend [`AbstractUser`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html)
+will need to implement [`getUserGroups()`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html#getUserGroups--),
+a function which retrieves the immediate parent groups of the user. The
+returned [`RelatedObjectSet`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html)
+should allow for manipulation of the group relationship if the extension allows
+such manipulation (and if the current user has permission to do so). Extensions
+which do not implement user groups can simply return an empty set:
 
     @Override
     public RelatedObjectSet getUserGroups() {
@@ -606,20 +617,23 @@ groups can simply return an empty set:
 
 ### The new decoration API
 
-The `AuthenticationProvider` interface now defines `decorate()` and `redecorate()`
+The [`AuthenticationProvider`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html)
+interface now defines [`decorate()`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-)
+and [`redecorate()`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-)
 functions which allow an implementation of `AuthenticationProvider` to decorate the
-`UserContext` instances of other extensions. After an extension returns a
-`UserContext` instance, the `decorate()` (if the `UserContext` is for a new
-session) or `redecorate()` (if the `UserContext` has been updated for an
-existing session) functions of all other extensions are invoked to give those
-extensions a chance to wrap the `UserContext`. This allows extensions to add
-functionality to the objects of other extensions which may not otherwise be
-possible.
-
-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
+[`UserContext`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html)
+instances of other extensions. After an extension returns a `UserContext`
+instance, the `decorate()` (if the `UserContext` is for a new session) or
+`redecorate()` (if the `UserContext` has been updated for an existing session)
+functions of all other extensions are invoked to give those extensions a chance
+to wrap the `UserContext`. This allows extensions to add functionality to the
+objects of other extensions which may not otherwise be possible.
+
+Implementations of `AuthenticationProvider` which extend
+[`AbstractAuthenticationProvider`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html)
+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`:
 
     @Override
@@ -640,10 +654,13 @@ TODO
 
 ### Deprecation of `SimpleUserDirectory`, `SimpleConnectionDirectory`, and `SimpleConnectionGroupDirectory` classes
 
-The `SimpleUserDirectory`, `SimpleConnectionDirectory`, and
-`SimpleConnectionGroupDirectory` classes have been deprecated in favor of the
-`SimpleDirectory<T>` class. These classes can still be used, but will result in
-deprecation warnings, and will be removed in a future release.
+The [`SimpleUserDirectory`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUaweDirectory.html),
+[`SimpleConnectionDirectory`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html),
+and [`SimpleConnectionGroupDirectory`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html)
+classes have been deprecated in favor of the
+[`SimpleDirectory<T>`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html)
+class. These classes can still be used, but will result in deprecation
+warnings, and will be removed in a future release.
 
 ### Deprecation of `SimpleUser` convenience constructors
 
@@ -658,7 +675,7 @@ TODO
 
 ### `GUAC_INSTRUCTION_MAX_ELEMENTS` macro definition changed
 
-TODO (Affects size of `guac_parser` as well as any code referencing that macro)
+TODO (Affects size of [`guac_parser`](/doc/1.0.0/libguac/structguac__parser.html) as well as any code referencing that macro)
 
 Java API (guacamole-common) changes
 -----------------------------------
@@ -681,9 +698,10 @@ TODO
 ### Addition of `Guacamole.Tunnel.State.UNSTABLE` state
 
 In order to support changes to detecting and handling network problems within
-the Guacamole connections, another tunnel state, `UNSTABLE`, has been added.
-The tunnel enters this state when it is still technically connected but the
-network connection appears unstable and may result in disconnection.
+the Guacamole connections, another tunnel state,
+`Guacamole.Tunnel.State.UNSTABLE`, has been added. The tunnel enters this
+state when it is still technically connected but the network connection appears
+unstable and may result in disconnection.
 
 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,


[02/10] guacamole-website git commit: Update draft release notes for 1.0.0-RC1

Posted by vn...@apache.org.
Update draft release notes for 1.0.0-RC1


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/b06f4f88
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/b06f4f88
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/b06f4f88

Branch: refs/heads/master
Commit: b06f4f88ca18525a7d86057d1cf147f0a2d020f5
Parents: 04444fc
Author: Nick Couchman <ni...@cotyinc.com>
Authored: Tue Jan 1 14:32:33 2019 -0500
Committer: Michael Jumper <mj...@apache.org>
Committed: Tue Jan 1 17:37:47 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 215 +++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 203 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/b06f4f88/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index f76da78..b7c90f6 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -119,6 +119,9 @@ providing this ability is equivalent to granting your users those privileges.
 
 ### Improved keyboard handling / Support for dead keys
 
+Multiple improvements have been made to handling keyboards, including bug fixes
+for various clients and support for dead keys.
+
  * [GUACAMOLE-161](https://issues.apache.org/jira/browse/GUACAMOLE-161) - Handle CapsLock events properly on Mac OS
  * [GUACAMOLE-232](https://issues.apache.org/jira/browse/GUACAMOLE-232) - Stuck keys iPad/Bluetooth keyboard (Return/Backspace/Space)
  * [GUACAMOLE-352](https://issues.apache.org/jira/browse/GUACAMOLE-352) - Add support for dead keys
@@ -126,9 +129,19 @@ providing this ability is equivalent to granting your users those privileges.
 
 ### Automatic connection behavior
 
+Guacamole has a feature that, if a user has access to only a single connection,
+they will be automatically connected to it and skip the home screen.  This feature
+has been tweaked slightly so that users with elevated access to the Guacamole
+Client (Administrative, ability to create connections) will be taken to the
+home screen and not automatically taken to the connection.
+
  * [GUACAMOLE-508](https://issues.apache.org/jira/browse/GUACAMOLE-508) - Automatically connect only if user lacks access to settings
 
-### Support for renaming RDP drive and printer 
+### Support for renaming RDP drive and printer
+
+A handful of changes allow for changing how the RDP protocol handles naming
+of the RDP client and redirected filesystem and printers passed through
+via Guacmaole.
 
  * [GUACAMOLE-445](https://issues.apache.org/jira/browse/GUACAMOLE-445) - Allow RDP printer name to be configured
  * [GUACAMOLE-446](https://issues.apache.org/jira/browse/GUACAMOLE-446) - Allow RDP drive name to be configured
@@ -136,14 +149,33 @@ providing this ability is equivalent to granting your users those privileges.
 
 ### 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.
+
  * [GUACAMOLE-470](https://issues.apache.org/jira/browse/GUACAMOLE-470) - Make individual terminal colors configurable through "color-scheme" parameter
 
 ### Optional recording of input events
 
+Guacamole has supported recording sessions for quite some time, but input
+events were not recorded (mouse movement, mouse clicks, keyboard input, etc.).
+Options are now present for capturing the input events during session
+recording.  These events are disabled by default, for security and privacy
+reasons, but can be enabled if desired.
+
  * [GUACAMOLE-313](https://issues.apache.org/jira/browse/GUACAMOLE-313) - Allow input events within session recording
 
 ### 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 done any host key checking,
+and version 1.0.0 introduces that capability.  It is important to note that
+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 not
+perform host key checking.  If host keys are provided, however, either in a
+known_hosts file within the GUACAMOLE_HOME directory on the server running
+guacd, or by passing in a parameter to the connection with the key of the
+specific server.
+
  * [GUACAMOLE-527](https://issues.apache.org/jira/browse/GUACAMOLE-527) - Add parameter for specifying known SSH/SFTP server host key
 
 ### Automatic detection of network issues
@@ -152,10 +184,22 @@ providing this ability is equivalent to granting your users those privileges.
 
 ### 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
+resemble the names of the parameters.  The variables are all caps and replace
+dashes with underscores.
+
  * [GUACAMOLE-464](https://issues.apache.org/jira/browse/GUACAMOLE-464) - Extension configuration properties from the OS environment
 
 ### Improvements to `guacamole/guacd` and `guacamole/guacamole` Docker images
 
+Many improvments have been made to the Docker support files for building
+and running Guacamole within Docker containers.  Most notable among these is
+that the default image for Guacamole Server has been changed from CentOS7
+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.
+
  * [GUACAMOLE-42](https://issues.apache.org/jira/browse/GUACAMOLE-42) - Support setting guacd log level on Docker container
  * [GUACAMOLE-407](https://issues.apache.org/jira/browse/GUACAMOLE-407) - Update guacd Docker image to build against more recent dependencies
  * [GUACAMOLE-450](https://issues.apache.org/jira/browse/GUACAMOLE-450) - Change Tomcat Version in Dockerfile to major release
@@ -163,6 +207,14 @@ providing this ability is equivalent to granting your users those privileges.
 
 ### General usability improvements
 
+A few changes address the usability of both the client and the server by
+adding functionality that addresses issues reported by users.  Guacamoel now
+supports Ctrl-Alt-End as a hotkey for sending Ctrl-Alt-Delete to remote systems,
+which is a widely-used hotkey among remote desktop clients.  The zoom level
+of the client can be specified more granularly, connections are easier
+to click on in the web interface, and guacd now provides a flag for
+outputting the build version.
+
  * [GUACAMOLE-113](https://issues.apache.org/jira/browse/GUACAMOLE-113) - Add Ctrl+Alt+Del hotkey
  * [GUACAMOLE-152](https://issues.apache.org/jira/browse/GUACAMOLE-152) - Difficult to reach specific zoom levels
  * [GUACAMOLE-304](https://issues.apache.org/jira/browse/GUACAMOLE-304) - Clicking area to open connection
@@ -170,16 +222,33 @@ providing this ability is equivalent to granting your users those privileges.
 
 ### General improvements to terminal behavior
 
+A few updates address improving compatibility of the terminal across
+different connections, 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 what code the backspace
+key sends.  The terminal has also been adjusted to hide escape sequences
+and control codes that were previously outputted to the screen.
+
  * [GUACAMOLE-269](https://issues.apache.org/jira/browse/GUACAMOLE-269) - Add support for alternative backspace/delete control codes
  * [GUACAMOLE-564](https://issues.apache.org/jira/browse/GUACAMOLE-564) - Hide APC escape sequence for terminal
  * [GUACAMOLE-565](https://issues.apache.org/jira/browse/GUACAMOLE-565) - Add terminal type parameter
 
 ### Support for systemd
 
+A template systemd init script has been provided and can be built with
+Guacamole Server to allow for xyxtem startup on distributions that
+have moved from init scripts to systemd.
+
  * [GUACAMOLE-30](https://issues.apache.org/jira/browse/GUACAMOLE-30) - Add Systemd init script for guacd-server
 
 ### 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 off-screen
+data.  The default behavior remains un-changed, with caching of all of these
+items enabled, but, for certain scenarios where it may be desirable to
+change this behavior the parameters are present.
+
  * [GUACAMOLE-448](https://issues.apache.org/jira/browse/GUACAMOLE-448) - Add parameters for controlling RDP bitmap/glyph/off-screen caching
 
 Internationalization
@@ -187,6 +256,9 @@ Internationalization
 
 ### Additional RDP keymaps
 
+Several keymaps have been added or updated for better support for keyboard
+input on both the Guacamole Client side and on remote systems.
+
  * [GUACAMOLE-233](https://issues.apache.org/jira/browse/GUACAMOLE-233) - Add Spanish keymap for RDP
  * [GUACAMOLE-273](https://issues.apache.org/jira/browse/GUACAMOLE-273) - Add Portuguese Brazilian keymap for RDP
  * [GUACAMOLE-434](https://issues.apache.org/jira/browse/GUACAMOLE-434) - Add UK English keymap for RDP
@@ -195,6 +267,10 @@ Internationalization
 
 ### Spanish translation of web interface
 
+The entire web interface has been translated into Spanish, including section
+and field headers on the web interface, on-screen keyboard, and remote system
+support.
+
  * [GUACAMOLE-463](https://issues.apache.org/jira/browse/GUACAMOLE-463) - Spanish translation for Guacamole client
  * [GUACAMOLE-530](https://issues.apache.org/jira/browse/GUACAMOLE-530) - Add Spanish on screen keyboard
 
@@ -203,10 +279,19 @@ Bug fixes
 
 ### Hostname / desktop name regression
 
+An issue was corrected where the hostname or desktop name replaced the
+connection name on the tab or window title in the browser.  The behavior
+has been reverted to the desired behavior, where the connection name is
+displayed.
+
  * [GUACAMOLE-502](https://issues.apache.org/jira/browse/GUACAMOLE-502) - Hostname / desktop name replaces connection name
 
 ### General connection stability
 
+Several fixes address issues with the stability of connections opened
+with Guacamole, either between Guacamole Client and Server, or between
+Server and remote systems.
+
  * [GUACAMOLE-324](https://issues.apache.org/jira/browse/GUACAMOLE-324) - Incorrect buffer used in socket write
  * [GUACAMOLE-384](https://issues.apache.org/jira/browse/GUACAMOLE-384) - Terminal writes during disconnect may segfault
  * [GUACAMOLE-424](https://issues.apache.org/jira/browse/GUACAMOLE-424) - VNC client segfaults if provided password is incorrect
@@ -226,35 +311,58 @@ Bug fixes
 
 ### CAS authorization URI derived incorrectly
 
+To ensure comptability across CAS various implementations of the CAS
+protocol, the "/login" portion of the URI has been added to the code
+that performs the CAS login.
+
  * [GUACAMOLE-457](https://issues.apache.org/jira/browse/GUACAMOLE-457) - CAS authentication provider omits login URI
 
 ### Build issues for guacamole-server
 
+A couple of fixes were introduced for build issues for Guacamole
+server components for various libraries and compilers.
+
  * [GUACAMOLE-485](https://issues.apache.org/jira/browse/GUACAMOLE-485) - pango is required with pango support disabled
  * [GUACAMOLE-500](https://issues.apache.org/jira/browse/GUACAMOLE-500) - Terminal build fails against GCC 7
 
 ### Fixes for guacenc behavior and protocol implementation
 
+A few bugs were squashed in the guacenc program that caused error
+messages and erratic behavior under certain conditions.
+
  * [GUACAMOLE-307](https://issues.apache.org/jira/browse/GUACAMOLE-307) - guacenc reports "Layer index out of bounds: -1"
  * [GUACAMOLE-482](https://issues.apache.org/jira/browse/GUACAMOLE-482) - Return value of guacenc_video_flush_frame() not handled
  * [GUACAMOLE-490](https://issues.apache.org/jira/browse/GUACAMOLE-490) - guacenc does not take channel mask into account for image streams
 
 ### Issues specific to Internet Explorer
 
+Changes were introduced that fix IE-specific issues that either
+caused problems or had the potential to impact compatibility with
+various versions of IE.
+
  * [GUACAMOLE-316](https://issues.apache.org/jira/browse/GUACAMOLE-316) - IE Compatibility mode doesn't work
  * [GUACAMOLE-347](https://issues.apache.org/jira/browse/GUACAMOLE-347) - IE may lack window.location.origin
  * [GUACAMOLE-348](https://issues.apache.org/jira/browse/GUACAMOLE-348) - Stream download iframe may not exist in DOM at time of removal
 
 ### Use of deprecated `navigator.getUserMedia()`
 
+The navigator.getuserMedia() method has been deprecated, so the
+Guacamole Client code has been adjusted to remove reliance upon
+that method.
+
  * [GUACAMOLE-237](https://issues.apache.org/jira/browse/GUACAMOLE-237) - navigator.getUserMedia() deprecated
 
 ### Incorrect documentation for RDP `load-balance-info` parameter
 
+Documentation was corrected for the load-balance-info parameter.
+
  * [GUACAMOLE-427](https://issues.apache.org/jira/browse/GUACAMOLE-427) - RDP "load-balance-info" parameter incorrectly documented
 
 ### Erroneous inclusion of "guaclog" binary in source tree
 
+The guaclog binary was accidentally included in one of the source
+code releases and in the git repository.  It has been removed.
+
  * [GUACAMOLE-492](https://issues.apache.org/jira/browse/GUACAMOLE-492) - guaclog binary erroneously included in source tree
 
 Platform / API changes
@@ -262,21 +370,48 @@ Platform / API changes
 
 ### **Java 8 or later is now required**
 
+As noted in the compatibility section below, the Guacamole Client
+code has been updated such that Java 1.8 is required for both
+build and runtime.
+
  * [GUACAMOLE-497](https://issues.apache.org/jira/browse/GUACAMOLE-497) - Ensure guacamole-client source is compatible with Java 9
  * [GUACAMOLE-635](https://issues.apache.org/jira/browse/GUACAMOLE-635) - Build against and require Java 1.8
 
 ### Guacamole no longer uses cookies
 
+The Guacamole Client has been updated such that cookies are no longer
+used to store the authentication information, and it is, instead, stored
+in the localStorage of the local browser.
+
  * [GUACAMOLE-549](https://issues.apache.org/jira/browse/GUACAMOLE-549) - Store auth token within localStorage
 
 ### 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
+and several old properties and API endpoints.
+
  * [GUACAMOLE-493](https://issues.apache.org/jira/browse/GUACAMOLE-493) - Remove the NoAuth extension entirely
  * [GUACAMOLE-494](https://issues.apache.org/jira/browse/GUACAMOLE-494) - Remove support for old, deprecated properties
  * [GUACAMOLE-495](https://issues.apache.org/jira/browse/GUACAMOLE-495) - Remove support for old, deprecated portions of API
 
 ### Improvements to extension API
 
+The extension API has been updated with several changes designed to
+streamline functionality and make development and maintenance of
+extensions easier and more consistent.  The error codes sent by
+the REST API are now derived from the GuacamoleStatus data structure
+rather than being separately calculated.  Dependency precendence has
+been updated so that the dependencies bundled with the WebApp are
+preferred over the ones bundled with the extensions.  Base implementations
+of UserContext and AuthenticationProvider modules have been provided
+and current extensions updated to make use of those, reducing the overall
+amount of code to maintain and making implementation of future modules
+more straight-forward.  Finally, the RESTExceptionMapper class was replaced
+by the RESTExceptionWrapper class, which also makes it possible for
+extensions to generate their own exceptions that can be handled by the
+web applicatlon.
+
  * [GUACAMOLE-499](https://issues.apache.org/jira/browse/GUACAMOLE-499) - REST API Error Codes should come from GuacamoleStatus
  * [GUACAMOLE-541](https://issues.apache.org/jira/browse/GUACAMOLE-541) - Webapp dependencies take precedence over bundled extension dependencies
  * [GUACAMOLE-542](https://issues.apache.org/jira/browse/GUACAMOLE-542) - Provide base implementations of UserContext and AuthenticationProvider
@@ -284,10 +419,21 @@ Platform / API changes
 
 ### Web application updated to AngularJS 1.6.9
 
+The AngularJS code was updated from the 1.3.x code to the latest
+available 1.x code, which was 1.6.9 at the time of the update.  Several
+portion of the code were reworked for compatibility with this, including
+significant portions of the HTTP request code and how exceptions are
+handled within those requests.
+
  * [GUACAMOLE-526](https://issues.apache.org/jira/browse/GUACAMOLE-526) - Update Guacamole-Client Webapp to Angular 1.6.9
 
 ### Improvements to Java / JavaScript tunnel API
 
+Changes were introduced to improve how the tunnel is handled between the
+Java and JavaScript portions of the code, including allowing custom
+headers to be configured for the tunnels and insuring that the tunnels
+are not closed more than once.
+
  * [GUACAMOLE-431](https://issues.apache.org/jira/browse/GUACAMOLE-431) - Tunnel implementations handles close only once
  * [GUACAMOLE-437](https://issues.apache.org/jira/browse/GUACAMOLE-437) - Allow to configure custom headers for Guacamole tunnels
 
@@ -301,15 +447,29 @@ with past releases:
 **Java 8 or later is now required**
 -----------------------------------
 
-TODO
+Most of the Java components of the Guacamole Client have been updated to
+require Java 1.8 for both compile and runtime.  The 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 not been updated in
+several years.  The only exception to this is the base API, the
+guacamole-common code, which continues to maintain compatibility with
+Java 1.6.
 
 Database schema changes
 -----------------------
 
-The MySQL, PostgreSQL, and SQL Server schemas have changed, ...
+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 the database authentication will need to run the
-`upgrade-pre-1.0.0.sql` script specific to their chosen database.
+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 [`JDBC Authentcation`]
+(http://guacamole.apache.org/doc/gug/jdbc-auth.html) documentation.
 
 Hostname logging within database
 --------------------------------
@@ -334,29 +494,50 @@ address.
 Removal of deprecated NoAuth extension
 --------------------------------------
 
-TODO
+The NoAuth extension has been deprecated for a couple of major releases of
+Guacamole, and has been entirely removed from the code base in this release,
+both source and binary releases.  If you are currently using this extension
+you will need to move to a different authentication extension during the
+upgrade process, as the NoAuth extension will no longer work.
 
 Removal of deprecated properties
 --------------------------------
 
+The following properties have been deprecated for quite some time, and
+are completely 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 they will be completely ignored if present in the
+guacamole.properties file.
+
 * `basic-user-mapping`
 * `mysql-disallow-simultaneous-connections`
 * `mysql-disallow-duplicate-connections`
 * `postgresql-disallow-simultaneous-connections`
 * `postgresql-disallow-duplicate-connections`
 
-TODO
-
 Extension API changes
 ---------------------
 
 ### Support for user groups
 
-TODO
+As noted above, one of the major changes in this version of the Guacamole
+Client is the addition of support for user groups across all authentication
+modules.  This includes changes in the core Extension API (guacamole-ext)
+that supports the user groups and allows for those groups to be processed
+across various stacked modules and implemented in newer modules.  The
+AbstractUserGroup, DelegatingUserGroup, SimpleUserGroup, and UserGroup
+classes have been added to the Extension API to be implemented within
+various extension modules.
 
 ### The new decoration API
 
-TODO
+The 1.0.0 version of the Guacamole Client introduces several classes
+that allow extension modules to decorate other modules, providing the
+ability to modules to build on top of other modules and store data in
+other modules.  This was key in allowing the TOTP module to function by
+allowing it to store arbitrary data in the databases provided by the
+JDBC module, and paves the way for future expansion on how modules
+leverage data and functionality from other modules.
 
 ### Removal of deprecated `GuacamoleHome` and `GuacamoleProperties` classes
 
@@ -364,7 +545,11 @@ TODO
 
 ### Deprecation of `SimpleUserDirectory`, `SimpleConnectionDirectory`, and `SimpleConnectionGroupDirectory` classes
 
-TODO (Replaced by `SimpleDirectory`)
+The SimpleUserDirectory, SimpleConnectionDirectory, and
+SimpleConnectionGroupDirectory classes have been deprecated in favor
+of the SimpleDirectory<T> class.  These classes can still be used,
+but will result in deprecation warnings, and will be removed in
+a future release.
 
 ### Deprecation of `SimpleUser` convenience constructors
 
@@ -401,7 +586,13 @@ TODO
 
 ### Addition of `Guacamole.Tunnel.State.UNSTABLE` state
 
-TODO (Implementations of `onstatechange` may need to take this into account if unknown statuses are not simply ignored)
+In order to support changes to detecting and handling network
+problems within the Guacamole connections, another tunnel state,
+UNSTABLE, has been added.  Custom code that leverages the
+Guacamole.Tunnel.State type may need to be refactored to take
+this additional state into account if it does not currently
+ignore unknown states, or the code needs to handle unstable
+connections.
 
 ### Internal WebSocket tunnel implementation changes
 


[10/10] guacamole-website git commit: Merge add draft release notes for first RC of 1.0.0.

Posted by vn...@apache.org.
Merge add draft release notes for first RC of 1.0.0.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/0e7f3de0
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/0e7f3de0
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/0e7f3de0

Branch: refs/heads/master
Commit: 0e7f3de0224769a402778356e81e69cc9824a919
Parents: 572bafd d1b55c6
Author: Nick Couchman <ni...@cotyinc.com>
Authored: Fri Jan 4 22:05:28 2019 -0500
Committer: Nick Couchman <ni...@cotyinc.com>
Committed: Fri Jan 4 22:05:28 2019 -0500

----------------------------------------------------------------------
 _releases/1.0.0.md | 805 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 805 insertions(+)
----------------------------------------------------------------------



[04/10] guacamole-website git commit: Add remaining descriptions of changes in 1.0.0.

Posted by vn...@apache.org.
Add remaining descriptions of changes in 1.0.0.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/c165e3c2
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/c165e3c2
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/c165e3c2

Branch: refs/heads/master
Commit: c165e3c23f2448f4897f1ad089ba742125df4c0a
Parents: 26d79b0
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Jan 4 11:51:18 2019 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Jan 4 11:57:28 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 103 +++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 93 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/c165e3c2/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index 111dc60..b469e0e 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -191,6 +191,14 @@ 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`](/doc/guacamole-common-js/Guacamole.Tunnel.html#event:onstatechange)
+handler to provide similar behavior, if desired.
+
  * [GUACAMOLE-567](https://issues.apache.org/jira/browse/GUACAMOLE-567) - Network connection problem acknowledgement/feedback
 
 ### Support for configuring Guacamole with environment variables
@@ -320,6 +328,16 @@ 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.
+
  * [GUACAMOLE-505](https://issues.apache.org/jira/browse/GUACAMOLE-505) - Individual user query fails after two or more login history entries exist
  * [GUACAMOLE-525](https://issues.apache.org/jira/browse/GUACAMOLE-525) - Creating user results in "Incorrect syntax near 'LIMIT'"
  * [GUACAMOLE-529](https://issues.apache.org/jira/browse/GUACAMOLE-529) - Despite the fact user account is disabled, user account can access to a welcome blank screen
@@ -327,6 +345,17 @@ issue causes the process to become unresponsive.
 
 ### 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.
+
  * [GUACAMOLE-484](https://issues.apache.org/jira/browse/GUACAMOLE-484) - UPSTREAM_UNAVAILABLE incorrectly reported for sessions closed by RDP server
 
 ### CAS authorization URI derived incorrectly
@@ -650,7 +679,11 @@ original `UserContext`:
 
 ### Removal of deprecated `GuacamoleHome` and `GuacamoleProperties` classes
 
-TODO
+The `GuacamoleHome` and `GuacamoleProperties` classes have been deprecated
+since 0.9.4, having been replaced by the [`Environment`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/environment/Environment.html)
+interface and its concrete [`LocalEnvironment`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html)
+implementation. These classes are no longer part of the extension API.
+Implementations should migrate to `LocalEnvironment`.
 
 ### Deprecation of `SimpleUserDirectory`, `SimpleConnectionDirectory`, and `SimpleConnectionGroupDirectory` classes
 
@@ -664,36 +697,80 @@ warnings, and will be removed in a future release.
 
 ### Deprecation of `SimpleUser` convenience constructors
 
-TODO
+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`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html)
+implementation of the [`User`](/doc/1.0.0/guacamole-ext/org/apache/guacamole/net/auth/User.html)
+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
 
-TODO
+The [`guac_protocol_send_mouse()`](/doc/1.0.0/libguac/protocol_8h.html#a8947056262da2f3263b9851370597622)
+function now accepts an additional [`guac_timestamp`](/doc/1.0.0/libguac/timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea)
+argument representing the point in time that the mouse event occurred. Callers
+of this function will now need to include an appropriate timestamp, such as the value returned by
+[`guac_timestamp_current()`](/doc/1.0.0/libguac/timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719).
 
 ### `GUAC_INSTRUCTION_MAX_ELEMENTS` macro definition changed
 
-TODO (Affects size of [`guac_parser`](/doc/1.0.0/libguac/structguac__parser.html) as well as any code referencing that macro)
+The value of the
+[`GUAC_INSTRUCTION_MAX_ELEMENTS`](/doc/1.0.0/libguac/parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46)
+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`](/doc/1.0.0/libguac/structguac__parser.html) 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
 
-TODO
+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 `GuacamoleHTTPTunnelServler.sendError()`
+### Change in definition of `GuacamoleHTTPTunnelServlet.sendError()`
 
-TODO
+The definition of the `protected` function
+[`sendError()`](/doc/1.0.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-)
+within [`GuacamoleHTTPTunnelServlet`](/doc/1.0.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html)
+has changed to include explicit numeric codes for the Guacamole and HTTP
+statuses rather than a single
+[`GuacamoleStatus`](/doc/1.0.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html).
+
+It is unlikely that this change will affect downstream implementations of
+`GuacamoleHTTPTunnelServlet`, which generally will only override
+[`doConnect()`](/doc/1.0.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-),
+however any downstream implementations which *do* call or override
+`sendError()` will need to be updated accordingly.
 
 JavaScript API changes
 ----------------------
 
-### Removal of deprecated `GuacamoleClient.setClipboard()` function
+### Removal of deprecated `Guacamole.Client.setClipboard()` function
+
+The `setClipboard()` function of
+[`Guacamole.Client`](/doc/1.0.0/guacamole-common-js/Guacamole.Client.html)
+has been deprecated since 0.9.1, having been replaced by
+[`createClipboardStream()`](/doc/1.0.0/guacamole-common-js/Guacamole.Client.html#createClipboardStream),
+and convenience "writer" implementations like
+[`Guacamole.StringWriter`](/doc/1.0.0/guacamole-common-js/Guacamole.StringWriter.html)
+which may be given the resulting
+[`Guacamole.OutputStream`](/doc/1.0.0/guacamole-common-js/Guacamole.OutputStream.html).
 
-TODO
+`setClipboard()` has now been removed from the API. Downstream uses of
+`setClipboard()` should migrate to `createClipboardStream()`.
 
 ### Addition of `Guacamole.Tunnel.State.UNSTABLE` state
 
@@ -709,5 +786,11 @@ or that code would benefit from explicitly handling the unstable condition.
 
 ### Internal WebSocket tunnel implementation changes
 
-TODO (New use of internal tunnel opcode for connection stability "ping" will affect third-party reimplementations of Guacamole's WebSocket tunnel)
+The WebSocket tunnel ([`Guacamole.WebSocketTunnel`](/doc/1.0.0/guacamole-common-js/Guacamole.WebSocketTunnel.html))
+now uses the [internal tunnel opcode](/doc/1.0.0/guacamole-common-js/Guacamole.Tunnel.html#.INTERNAL_DATA_OPCODE)
+to [send "ping" requests](https://github.com/apache/guacamole-client/blob/78f1ae1b4eac25501d532ddee94fd1d8588e56dc/guacamole-common-js/src/main/webapp/modules/Tunnel.js#L948-L952)
+which the server side of the tunnel must respond to
+[with an identical instruction](https://github.com/apache/guacamole-client/blob/78f1ae1b4eac25501d532ddee94fd1d8588e56dc/guacamole-common/src/main/java/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.java#L321-L324)
+to verify connection stability. Third-party reimplementations of the WebSocket
+tunnel will need to be updated to do the same.
 


[08/10] guacamole-website git commit: Correct wording describing automatic connection behavior for admins.

Posted by vn...@apache.org.
Correct wording describing automatic connection behavior for admins.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/7c7a9ac6
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/7c7a9ac6
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/7c7a9ac6

Branch: refs/heads/master
Commit: 7c7a9ac6679809c00ed92c542587763e1814c11c
Parents: 72a711c
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Jan 4 14:52:01 2019 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Jan 4 14:52:01 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/7c7a9ac6/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index 9e871b3..17d5db0 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -134,7 +134,7 @@ 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 not automatically connected.
+screen and will not be automatically connected.
 
  * [GUACAMOLE-508](https://issues.apache.org/jira/browse/GUACAMOLE-508) - Automatically connect only if user lacks access to settings
 


[05/10] guacamole-website git commit: Clarify wording of draft 1.0.0 release notes, fix typos.

Posted by vn...@apache.org.
Clarify wording of draft 1.0.0 release notes, fix typos.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/6f785e12
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/6f785e12
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/6f785e12

Branch: refs/heads/master
Commit: 6f785e121b845dc9482e67f6bc8e0d9894c4bccc
Parents: b06f4f8
Author: Michael Jumper <mj...@apache.org>
Authored: Wed Jan 2 01:02:50 2019 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Jan 4 11:57:28 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 405 ++++++++++++++++++++++++++++++------------------
 1 file changed, 250 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/6f785e12/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index b7c90f6..08f33cc 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -119,8 +119,8 @@ providing this ability is equivalent to granting your users those privileges.
 
 ### Improved keyboard handling / Support for dead keys
 
-Multiple improvements have been made to handling keyboards, including bug fixes
-for various clients and support for dead keys.
+Multiple improvements have been made to keyboard handling, including bug fixes
+for Mac and iOS and support for dead keys.
 
  * [GUACAMOLE-161](https://issues.apache.org/jira/browse/GUACAMOLE-161) - Handle CapsLock events properly on Mac OS
  * [GUACAMOLE-232](https://issues.apache.org/jira/browse/GUACAMOLE-232) - Stuck keys iPad/Bluetooth keyboard (Return/Backspace/Space)
@@ -129,19 +129,19 @@ for various clients and support for dead keys.
 
 ### Automatic connection behavior
 
-Guacamole has a feature that, if a user has access to only a single connection,
-they will be automatically connected to it and skip the home screen.  This feature
-has been tweaked slightly so that users with elevated access to the Guacamole
-Client (Administrative, ability to create connections) will be taken to the
-home screen and not automatically taken to the connection.
+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 not automatically connected.
 
  * [GUACAMOLE-508](https://issues.apache.org/jira/browse/GUACAMOLE-508) - Automatically connect only if user lacks access to settings
 
 ### Support for renaming RDP drive and printer
 
-A handful of changes allow for changing how the RDP protocol handles naming
-of the RDP client and redirected filesystem and printers passed through
-via Guacmaole.
+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.
 
  * [GUACAMOLE-445](https://issues.apache.org/jira/browse/GUACAMOLE-445) - Allow RDP printer name to be configured
  * [GUACAMOLE-446](https://issues.apache.org/jira/browse/GUACAMOLE-446) - Allow RDP drive name to be configured
@@ -156,25 +156,36 @@ schemes by allowing for the individual colors of a scheme to be customized.
 
 ### Optional recording of input events
 
-Guacamole has supported recording sessions for quite some time, but input
-events were not recorded (mouse movement, mouse clicks, keyboard input, etc.).
-Options are now present for capturing the input events during session
-recording.  These events are disabled by default, for security and privacy
-reasons, but can be enabled if desired.
+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.
+
+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.
 
  * [GUACAMOLE-313](https://issues.apache.org/jira/browse/GUACAMOLE-313) - Allow input events within session recording
 
 ### 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 done any host key checking,
-and version 1.0.0 introduces that capability.  It is important to note that
-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 not
-perform host key checking.  If host keys are provided, however, either in a
-known_hosts file within the GUACAMOLE_HOME directory on the server running
-guacd, or by passing in a parameter to the connection with the key of the
-specific server.
+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 a `known_hosts` file within the
+`GUACAMOLE_HOME` directory on the server running guacd, or by passing in a
+parameter to the connection with the key of the specific server), host checking
+will be strictly enforced and the connection will only succeed if the host
+matches.
 
  * [GUACAMOLE-527](https://issues.apache.org/jira/browse/GUACAMOLE-527) - Add parameter for specifying known SSH/SFTP server host key
 
@@ -185,20 +196,23 @@ specific server.
 ### 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
-resemble the names of the parameters.  The variables are all caps and replace
-dashes with underscores.
+`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.
 
  * [GUACAMOLE-464](https://issues.apache.org/jira/browse/GUACAMOLE-464) - Extension configuration properties from the OS environment
 
 ### Improvements to `guacamole/guacd` and `guacamole/guacamole` Docker images
 
-Many improvments have been made to the Docker support files for building
-and running Guacamole within Docker containers.  Most notable among these is
-that the default image for Guacamole Server has been changed from CentOS7
-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.
+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.
 
  * [GUACAMOLE-42](https://issues.apache.org/jira/browse/GUACAMOLE-42) - Support setting guacd log level on Docker container
  * [GUACAMOLE-407](https://issues.apache.org/jira/browse/GUACAMOLE-407) - Update guacd Docker image to build against more recent dependencies
@@ -207,13 +221,12 @@ of guacd.
 
 ### General usability improvements
 
-A few changes address the usability of both the client and the server by
-adding functionality that addresses issues reported by users.  Guacamoel now
-supports Ctrl-Alt-End as a hotkey for sending Ctrl-Alt-Delete to remote systems,
-which is a widely-used hotkey among remote desktop clients.  The zoom level
-of the client can be specified more granularly, connections are easier
-to click on in the web interface, and guacd now provides a flag for
-outputting the build version.
+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.
 
  * [GUACAMOLE-113](https://issues.apache.org/jira/browse/GUACAMOLE-113) - Add Ctrl+Alt+Del hotkey
  * [GUACAMOLE-152](https://issues.apache.org/jira/browse/GUACAMOLE-152) - Difficult to reach specific zoom levels
@@ -222,12 +235,12 @@ outputting the build version.
 
 ### General improvements to terminal behavior
 
-A few updates address improving compatibility of the terminal across
-different connections, 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 what code the backspace
-key sends.  The terminal has also been adjusted to hide escape sequences
-and control codes that were previously outputted to the screen.
+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.
 
  * [GUACAMOLE-269](https://issues.apache.org/jira/browse/GUACAMOLE-269) - Add support for alternative backspace/delete control codes
  * [GUACAMOLE-564](https://issues.apache.org/jira/browse/GUACAMOLE-564) - Hide APC escape sequence for terminal
@@ -235,19 +248,19 @@ and control codes that were previously outputted to the screen.
 
 ### Support for systemd
 
-A template systemd init script has been provided and can be built with
-Guacamole Server to allow for xyxtem startup on distributions that
-have moved from init scripts to 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.
 
  * [GUACAMOLE-30](https://issues.apache.org/jira/browse/GUACAMOLE-30) - Add Systemd init script for guacd-server
 
 ### 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 off-screen
-data.  The default behavior remains un-changed, with caching of all of these
-items enabled, but, for certain scenarios where it may be desirable to
-change this behavior the parameters are present.
+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.
 
  * [GUACAMOLE-448](https://issues.apache.org/jira/browse/GUACAMOLE-448) - Add parameters for controlling RDP bitmap/glyph/off-screen caching
 
@@ -256,8 +269,13 @@ Internationalization
 
 ### Additional RDP keymaps
 
-Several keymaps have been added or updated for better support for keyboard
-input on both the Guacamole Client side and on remote systems.
+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](/faq/#does-guacamole-support-my-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).
 
  * [GUACAMOLE-233](https://issues.apache.org/jira/browse/GUACAMOLE-233) - Add Spanish keymap for RDP
  * [GUACAMOLE-273](https://issues.apache.org/jira/browse/GUACAMOLE-273) - Add Portuguese Brazilian keymap for RDP
@@ -267,9 +285,11 @@ input on both the Guacamole Client side and on remote systems.
 
 ### Spanish translation of web interface
 
-The entire web interface has been translated into Spanish, including section
-and field headers on the web interface, on-screen keyboard, and remote system
-support.
+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](/doc/gug/using-guacamole.html#display-language)
+within Guacamole's preferences.
 
  * [GUACAMOLE-463](https://issues.apache.org/jira/browse/GUACAMOLE-463) - Spanish translation for Guacamole client
  * [GUACAMOLE-530](https://issues.apache.org/jira/browse/GUACAMOLE-530) - Add Spanish on screen keyboard
@@ -279,18 +299,18 @@ Bug fixes
 
 ### Hostname / desktop name regression
 
-An issue was corrected where the hostname or desktop name replaced the
-connection name on the tab or window title in the browser.  The behavior
-has been reverted to the desired behavior, where the connection name is
-displayed.
+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.
 
  * [GUACAMOLE-502](https://issues.apache.org/jira/browse/GUACAMOLE-502) - Hostname / desktop name replaces connection name
 
 ### General connection stability
 
-Several fixes address issues with the stability of connections opened
-with Guacamole, either between Guacamole Client and Server, or between
-Server and remote systems.
+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.
 
  * [GUACAMOLE-324](https://issues.apache.org/jira/browse/GUACAMOLE-324) - Incorrect buffer used in socket write
  * [GUACAMOLE-384](https://issues.apache.org/jira/browse/GUACAMOLE-384) - Terminal writes during disconnect may segfault
@@ -311,24 +331,28 @@ Server and remote systems.
 
 ### CAS authorization URI derived incorrectly
 
-To ensure comptability across CAS various implementations of the CAS
-protocol, the "/login" portion of the URI has been added to the code
-that performs the CAS login.
+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.
 
  * [GUACAMOLE-457](https://issues.apache.org/jira/browse/GUACAMOLE-457) - CAS authentication provider omits login URI
 
 ### Build issues for guacamole-server
 
-A couple of fixes were introduced for build issues for Guacamole
-server components for various libraries and compilers.
+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.
 
  * [GUACAMOLE-485](https://issues.apache.org/jira/browse/GUACAMOLE-485) - pango is required with pango support disabled
  * [GUACAMOLE-500](https://issues.apache.org/jira/browse/GUACAMOLE-500) - Terminal build fails against GCC 7
 
 ### Fixes for guacenc behavior and protocol implementation
 
-A few bugs were squashed in the guacenc program that caused error
-messages and erratic behavior under certain conditions.
+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.
 
  * [GUACAMOLE-307](https://issues.apache.org/jira/browse/GUACAMOLE-307) - guacenc reports "Layer index out of bounds: -1"
  * [GUACAMOLE-482](https://issues.apache.org/jira/browse/GUACAMOLE-482) - Return value of guacenc_video_flush_frame() not handled
@@ -336,9 +360,9 @@ messages and erratic behavior under certain conditions.
 
 ### Issues specific to Internet Explorer
 
-Changes were introduced that fix IE-specific issues that either
-caused problems or had the potential to impact compatibility with
-various versions of IE.
+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.
 
  * [GUACAMOLE-316](https://issues.apache.org/jira/browse/GUACAMOLE-316) - IE Compatibility mode doesn't work
  * [GUACAMOLE-347](https://issues.apache.org/jira/browse/GUACAMOLE-347) - IE may lack window.location.origin
@@ -346,22 +370,24 @@ various versions of IE.
 
 ### Use of deprecated `navigator.getUserMedia()`
 
-The navigator.getuserMedia() method has been deprecated, so the
-Guacamole Client code has been adjusted to remove reliance upon
+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.
 
  * [GUACAMOLE-237](https://issues.apache.org/jira/browse/GUACAMOLE-237) - navigator.getUserMedia() deprecated
 
 ### Incorrect documentation for RDP `load-balance-info` parameter
 
-Documentation was corrected for the load-balance-info parameter.
+The `load-balance-info` parameter was incorrectly documented as
+`load-balancing-info`. The correct parameter name is indeed
+`load-balance-info`. This has been fixed in the documentation.
 
  * [GUACAMOLE-427](https://issues.apache.org/jira/browse/GUACAMOLE-427) - RDP "load-balance-info" parameter incorrectly documented
 
 ### Erroneous inclusion of "guaclog" binary in source tree
 
-The guaclog binary was accidentally included in one of the source
-code releases and in the git repository.  It has been removed.
+The "guaclog" binary was accidentally included in the source tree of the git
+repository. It has been removed.
 
  * [GUACAMOLE-492](https://issues.apache.org/jira/browse/GUACAMOLE-492) - guaclog binary erroneously included in source tree
 
@@ -370,26 +396,30 @@ Platform / API changes
 
 ### **Java 8 or later is now required**
 
-As noted in the compatibility section below, the Guacamole Client
-code has been updated such that Java 1.8 is required for both
-build and runtime.
+As noted in [the compatibility section below](#deprecation--compatibility-notes),
+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.
 
  * [GUACAMOLE-497](https://issues.apache.org/jira/browse/GUACAMOLE-497) - Ensure guacamole-client source is compatible with Java 9
  * [GUACAMOLE-635](https://issues.apache.org/jira/browse/GUACAMOLE-635) - Build against and require Java 1.8
 
 ### Guacamole no longer uses cookies
 
-The Guacamole Client has been updated such that cookies are no longer
-used to store the authentication information, and it is, instead, stored
-in the localStorage of the local browser.
+The Guacamole web application no longer uses cookies at all, instead relying on
+the browser's local storage.
 
  * [GUACAMOLE-549](https://issues.apache.org/jira/browse/GUACAMOLE-549) - Store auth token within localStorage
 
 ### 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
-and several old properties and API endpoints.
+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.
 
  * [GUACAMOLE-493](https://issues.apache.org/jira/browse/GUACAMOLE-493) - Remove the NoAuth extension entirely
  * [GUACAMOLE-494](https://issues.apache.org/jira/browse/GUACAMOLE-494) - Remove support for old, deprecated properties
@@ -397,20 +427,14 @@ and several old properties and API endpoints.
 
 ### Improvements to extension API
 
-The extension API has been updated with several changes designed to
-streamline functionality and make development and maintenance of
-extensions easier and more consistent.  The error codes sent by
-the REST API are now derived from the GuacamoleStatus data structure
-rather than being separately calculated.  Dependency precendence has
-been updated so that the dependencies bundled with the WebApp are
-preferred over the ones bundled with the extensions.  Base implementations
-of UserContext and AuthenticationProvider modules have been provided
-and current extensions updated to make use of those, reducing the overall
-amount of code to maintain and making implementation of future modules
-more straight-forward.  Finally, the RESTExceptionMapper class was replaced
-by the RESTExceptionWrapper class, which also makes it possible for
-extensions to generate their own exceptions that can be handled by the
-web applicatlon.
+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 `UserContext` and
+`AuthenticationProvider` interfaces have been provided, removing the need to
+fully implement these interfaces when writing an extension.
 
  * [GUACAMOLE-499](https://issues.apache.org/jira/browse/GUACAMOLE-499) - REST API Error Codes should come from GuacamoleStatus
  * [GUACAMOLE-541](https://issues.apache.org/jira/browse/GUACAMOLE-541) - Webapp dependencies take precedence over bundled extension dependencies
@@ -419,20 +443,19 @@ web applicatlon.
 
 ### Web application updated to AngularJS 1.6.9
 
-The AngularJS code was updated from the 1.3.x code to the latest
-available 1.x code, which was 1.6.9 at the time of the update.  Several
-portion of the code were reworked for compatibility with this, including
-significant portions of the HTTP request code and how exceptions are
-handled within those requests.
+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.
 
  * [GUACAMOLE-526](https://issues.apache.org/jira/browse/GUACAMOLE-526) - Update Guacamole-Client Webapp to Angular 1.6.9
 
-### Improvements to Java / JavaScript tunnel API
+### Improvements to JavaScript tunnel API
 
-Changes were introduced to improve how the tunnel is handled between the
-Java and JavaScript portions of the code, including allowing custom
-headers to be configured for the tunnels and insuring that the tunnels
-are not closed more than once.
+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.
 
  * [GUACAMOLE-431](https://issues.apache.org/jira/browse/GUACAMOLE-431) - Tunnel implementations handles close only once
  * [GUACAMOLE-437](https://issues.apache.org/jira/browse/GUACAMOLE-437) - Allow to configure custom headers for Guacamole tunnels
@@ -448,13 +471,13 @@ with past releases:
 -----------------------------------
 
 Most of the Java components of the Guacamole Client have been updated to
-require Java 1.8 for both compile and runtime.  The 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 not been updated in
-several years.  The only exception to this is the base API, the
-guacamole-common code, which continues to maintain compatibility with
-Java 1.6.
+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
 -----------------------
@@ -468,7 +491,7 @@ required to support those within the database modules (including the
 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 [`JDBC Authentcation`]
+instructions for this process can be found in the [`JDBC Authentication`]
 (http://guacamole.apache.org/doc/gug/jdbc-auth.html) documentation.
 
 Hostname logging within database
@@ -494,20 +517,15 @@ address.
 Removal of deprecated NoAuth extension
 --------------------------------------
 
-The NoAuth extension has been deprecated for a couple of major releases of
-Guacamole, and has been entirely removed from the code base in this release,
-both source and binary releases.  If you are currently using this extension
-you will need to move to a different authentication extension during the
-upgrade process, as the NoAuth extension will no longer work.
+The NoAuth extension has been [deprecated since
+0.9.13-incubating](/releases/0.9.13-incubating/#noauth-now-deprecated), and has
+now been removed from Guacamole's codebase.
 
 Removal of deprecated properties
 --------------------------------
 
 The following properties have been deprecated for quite some time, and
-are completely 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 they will be completely ignored if present in the
-guacamole.properties file.
+have been removed in the 1.0.0 release.
 
 * `basic-user-mapping`
 * `mysql-disallow-simultaneous-connections`
@@ -515,29 +533,106 @@ guacamole.properties file.
 * `postgresql-disallow-simultaneous-connections`
 * `postgresql-disallow-duplicate-connections`
 
+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
 
-As noted above, one of the major changes in this version of the Guacamole
-Client is the addition of support for user groups across all authentication
-modules.  This includes changes in the core Extension API (guacamole-ext)
-that supports the user groups and allows for those groups to be processed
-across various stacked modules and implemented in newer modules.  The
-AbstractUserGroup, DelegatingUserGroup, SimpleUserGroup, and UserGroup
-classes have been added to the Extension API to be implemented within
-various extension modules.
+As noted above, one of the major changes in this release is the addition of
+support for user groups. These changes center around the new `UserGroup`
+interface and functions for accessing instances of that interface. Note that if
+you are using the abstract base classes `AbstractUserContext` and
+`AbstractUser`, little to no changes will be necessary as default
+implementations of the required new functions have been provided.
+
+#### Retrieval of user groups
+
+The `UserContext` interface now defines a
+`getUserGroupDirectory()` function which returns a `Directory<UserGroup>`
+providing access to all user groups. If your extension does not provide user
+groups, it can simply return an empty `SimpleDirectory<UserGroup>`:
+
+    @Override
+    public Object getUserGroupDirectory() {
+        return new SimpleDirectory<UserGroup>();
+    }
+
+#### 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 `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:
+
+    @Override
+    public Set<String> getEffectiveUserGroups() {
+        return Collections.<String>emptySet();
+    }
+
+#### 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 inheritence of permissions is not implemented by your
+extension, this function can simply return `this` (as `User` extends
+`Permissions`):
+
+    @Override
+    public Permissions getEffectivePermissions() {
+        return this;
+    }
+
+#### Exposing group membership
+
+The `User` and `UserGroup` interfaces provide multiple functions for retrieving
+parent groups and child objects, if applicable. Existing implementations of the
+`User` interface which do not extend `AbstractUser` will need to implement
+`getUserGroups()`, a function which retrieves the immediate parent groups of
+the user. The returned `RelatedObjectSet` should allow for manipulation of the
+group relationship if the extension allows such manipulation (and if the
+current user has permission to do so). Extensions which do not implement user
+groups can simply return an empty set:
+
+    @Override
+    public RelatedObjectSet getUserGroups() {
+        return RelatedObjectSet.EMPTY_SET;
+    }
 
 ### The new decoration API
 
-The 1.0.0 version of the Guacamole Client introduces several classes
-that allow extension modules to decorate other modules, providing the
-ability to modules to build on top of other modules and store data in
-other modules.  This was key in allowing the TOTP module to function by
-allowing it to store arbitrary data in the databases provided by the
-JDBC module, and paves the way for future expansion on how modules
-leverage data and functionality from other modules.
+The `AuthenticationProvider` interface now defines `decorate()` and `redecorate()`
+functions which allow an implementation of `AuthenticationProvider` to decorate the
+`UserContext` instances of other extensions. After an extension returns a
+`UserContext` instance, the `decorate()` (if the `UserContext` is for a new
+session) or `redecorate()` (if the `UserContext` has been updated for an
+existing session) functions of all other extensions are invoked to give those
+extensions a chance to wrap the `UserContext`. This allows extensions to add
+functionality to the objects of other extensions which may not otherwise be
+possible.
+
+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`:
+
+    @Override
+    public UserContext decorate(UserContext context,
+        AuthenticationProvider authProvider, Credentials credentials) {
+        return context;
+    }
+
+    @Override
+    public UserContext redecorate(UserContext decorated, UserContext context,
+        AuthenticationProvider authProvider, Credentials credentials) {
+        return decorate(context, authProvider, credentials);
+    }
 
 ### Removal of deprecated `GuacamoleHome` and `GuacamoleProperties` classes
 
@@ -545,11 +640,10 @@ TODO
 
 ### Deprecation of `SimpleUserDirectory`, `SimpleConnectionDirectory`, and `SimpleConnectionGroupDirectory` classes
 
-The SimpleUserDirectory, SimpleConnectionDirectory, and
-SimpleConnectionGroupDirectory classes have been deprecated in favor
-of the SimpleDirectory<T> class.  These classes can still be used,
-but will result in deprecation warnings, and will be removed in
-a future release.
+The `SimpleUserDirectory`, `SimpleConnectionDirectory`, and
+`SimpleConnectionGroupDirectory` classes have been deprecated in favor of the
+`SimpleDirectory<T>` class. These classes can still be used, but will result in
+deprecation warnings, and will be removed in a future release.
 
 ### Deprecation of `SimpleUser` convenience constructors
 
@@ -586,13 +680,14 @@ TODO
 
 ### Addition of `Guacamole.Tunnel.State.UNSTABLE` state
 
-In order to support changes to detecting and handling network
-problems within the Guacamole connections, another tunnel state,
-UNSTABLE, has been added.  Custom code that leverages the
-Guacamole.Tunnel.State type may need to be refactored to take
-this additional state into account if it does not currently
-ignore unknown states, or the code needs to handle unstable
-connections.
+In order to support changes to detecting and handling network problems within
+the Guacamole connections, another tunnel state, `UNSTABLE`, has been added.
+The tunnel enters this state when it is still technically connected but the
+network connection appears unstable and may result in disconnection.
+
+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
 


[07/10] guacamole-website git commit: Add additional links to documentation where relevant to 1.0.0 changes.

Posted by vn...@apache.org.
Add additional links to documentation where relevant to 1.0.0 changes.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/72a711c9
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/72a711c9
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/72a711c9

Branch: refs/heads/master
Commit: 72a711c945172ed118d0c908dcbd8a2e8504d021
Parents: de832ea
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Jan 4 12:16:17 2019 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Jan 4 12:16:17 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/72a711c9/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index 2ee818b..9e871b3 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -49,7 +49,8 @@ New features and improvements
 
 ### Support for user groups
 
-Guacamole now supports granting permissions based on group membership. While
+Guacamole now supports [granting permissions based on group
+membership](/doc/1.0.0/gug/administration.html#user-group-management). 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
@@ -141,7 +142,10 @@ screen and not automatically connected.
 
 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.
+has been added to override these names with [the `drive-name` and
+`printer-name`
+parameters](/doc/1.0.0/gug/configuring-guacamole.html#rdp-device-redirection)
+respectively.
 
  * [GUACAMOLE-445](https://issues.apache.org/jira/browse/GUACAMOLE-445) - Allow RDP printer name to be configured
  * [GUACAMOLE-446](https://issues.apache.org/jira/browse/GUACAMOLE-446) - Allow RDP drive name to be configured
@@ -150,7 +154,10 @@ has been added to override these names.
 ### 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.
+schemes by allowing for the individual colors of a scheme to be customized
+through [the existing `color-scheme`
+parameter](/doc/1.0.0/gug/configuring-guacamole.html#ssh-display-settings). The
+behavior of this parameter is the same for both SSH and telnet.
 
  * [GUACAMOLE-470](https://issues.apache.org/jira/browse/GUACAMOLE-470) - Make individual terminal colors configurable through "color-scheme" parameter
 
@@ -265,11 +272,12 @@ 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.
+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](/doc/1.0.0/gug/configuring-guacamole.html#rdp-perf-flags). 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.
 
  * [GUACAMOLE-448](https://issues.apache.org/jira/browse/GUACAMOLE-448) - Add parameters for controlling RDP bitmap/glyph/off-screen caching
 


[09/10] guacamole-website git commit: SSH/SFTP host *key* checking, not "host checking".

Posted by vn...@apache.org.
SSH/SFTP host *key* checking, not "host checking".


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/d1b55c63
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/d1b55c63
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/d1b55c63

Branch: refs/heads/master
Commit: d1b55c635d343033062398fa6ed5fe2e46ef5c35
Parents: 7c7a9ac
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Jan 4 14:53:03 2019 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Jan 4 14:53:12 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/d1b55c63/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index 17d5db0..6af2a02 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -192,8 +192,8 @@ If host keys *are* provided (either in [an `ssh_known_hosts` file within the
 `GUACAMOLE_HOME` directory](/doc/1.0.0/gug/configuring-guacamole.html#ssh-host-verification)
 on the server running guacd, or by passing [the `host-key`
 parameter](/doc/1.0.0/gug/configuring-guacamole.html#ssh-network-parameters) to
-the connection with the key of the specific server), host checking will be
-strictly enforced and the connection will only succeed if the host matches.
+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.
 
  * [GUACAMOLE-527](https://issues.apache.org/jira/browse/GUACAMOLE-527) - Add parameter for specifying known SSH/SFTP server host key
 


[06/10] guacamole-website git commit: The "known_hosts" file is called "ssh_known_hosts" within GUACAMOLE_HOME.

Posted by vn...@apache.org.
The "known_hosts" file is called "ssh_known_hosts" within GUACAMOLE_HOME.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-website/commit/de832ea8
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-website/tree/de832ea8
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-website/diff/de832ea8

Branch: refs/heads/master
Commit: de832ea8f8c28619b01ca3c2023f525d75be31b4
Parents: c165e3c
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Jan 4 12:02:57 2019 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Jan 4 12:02:57 2019 -0800

----------------------------------------------------------------------
 _releases/1.0.0.md | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-website/blob/de832ea8/_releases/1.0.0.md
----------------------------------------------------------------------
diff --git a/_releases/1.0.0.md b/_releases/1.0.0.md
index b469e0e..2ee818b 100644
--- a/_releases/1.0.0.md
+++ b/_releases/1.0.0.md
@@ -181,11 +181,12 @@ 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 a `known_hosts` file within the
-`GUACAMOLE_HOME` directory on the server running guacd, or by passing in a
-parameter to the connection with the key of the specific server), host checking
-will be strictly enforced and the connection will only succeed if the host
-matches.
+If host keys *are* provided (either in [an `ssh_known_hosts` file within the
+`GUACAMOLE_HOME` directory](/doc/1.0.0/gug/configuring-guacamole.html#ssh-host-verification)
+on the server running guacd, or by passing [the `host-key`
+parameter](/doc/1.0.0/gug/configuring-guacamole.html#ssh-network-parameters) to
+the connection with the key of the specific server), host checking will be
+strictly enforced and the connection will only succeed if the host matches.
 
  * [GUACAMOLE-527](https://issues.apache.org/jira/browse/GUACAMOLE-527) - Add parameter for specifying known SSH/SFTP server host key