Merge 1.6.1 changes to patch.
This commit is contained in:
commit
2645cffe56
61 files changed
+538
-222
No files matched your search
@@ -1,2 +1,3 @@
|
||||
*~
|
||||
target/
|
||||
.flattened-pom.xml
|
||||
@@ -26,7 +26,7 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-example</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>1.6.0</version>
|
||||
<version>1.6.1</version>
|
||||
<name>guacamole-example</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-common</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>1.6.1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-common-js</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>1.6.1</version>
|
||||
<type>zip</type>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-playback-example</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>1.6.0</version>
|
||||
<version>1.6.1</version>
|
||||
<name>guacamole-playback-example</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-common-js</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>1.6.1</version>
|
||||
<type>zip</type>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-ban</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-ban</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -51,8 +49,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
|
||||
<!-- Exclude transitive dependencies that will be overridden by
|
||||
newer versions required by Caffeine -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Brute-force Authentication Detection/Prevention",
|
||||
"namespace" : "ban",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-duo</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-duo</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
@@ -49,8 +47,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guava - Utility Library -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Duo TFA Authentication Backend",
|
||||
"namespace" : "duo",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-header</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-header</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -43,8 +41,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guice -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "HTTP Header Authentication Extension",
|
||||
"namespace" : "header",
|
||||
@@ -32,7 +32,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- MyBatis -->
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -42,21 +42,21 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc-mysql</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- PostgreSQL Authentication Extension -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc-postgresql</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- SQL Server Authentication Extension -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc-sqlserver</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -42,14 +42,13 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guacamole JDBC Authentication -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc-base</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "MySQL Authentication",
|
||||
"namespace" : "mysql",
|
||||
@@ -32,7 +32,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -42,14 +42,13 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guacamole JDBC Authentication -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc-base</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "PostgreSQL Authentication",
|
||||
"namespace" : "postgresql",
|
||||
@@ -32,7 +32,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -42,14 +42,13 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guacamole JDBC Authentication -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc-base</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "SQLServer Authentication",
|
||||
"namespace" : "sqlserver",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-jdbc</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-jdbc</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
@@ -52,18 +50,4 @@
|
||||
|
||||
</modules>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
||||
<!-- Guacamole Extension API -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
</project>
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-json</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-json</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -43,8 +41,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guice -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Encrypted JSON Authentication",
|
||||
"namespace" : "json",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-ldap</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-ldap</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -43,8 +41,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Apache Directory LDAP API -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "LDAP Authentication",
|
||||
"namespace" : "ldap",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-quickconnect</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-quickconnect</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
@@ -98,8 +96,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guice -->
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Adhoc Guacamole Connections",
|
||||
"namespace" : "quickconnect",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-radius</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-radius</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
@@ -115,8 +113,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guava - Utility Library -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "RADIUS Authentication Backend",
|
||||
"namespace" : "radius",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-restrict</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-restrict</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
@@ -127,8 +125,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guava - Utility Library -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Restriction Authentication Backend",
|
||||
"namespace" : "restrict",
|
||||
@@ -32,7 +32,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -26,14 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-cas</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-sso-cas</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "CAS Authentication Extension",
|
||||
"namespace" : "cas",
|
||||
@@ -32,7 +32,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -42,28 +42,28 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-cas</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- OpenID Authentication Extension -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-openid</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- SAML Authentication Extension -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-saml</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- SSL Authentication Extension -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-ssl</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -26,14 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-openid</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-sso-openid</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "OpenID Authentication Extension",
|
||||
"namespace" : "openid",
|
||||
@@ -26,14 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-saml</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-sso-saml</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "SAML Authentication Extension",
|
||||
"namespace" : "saml",
|
||||
@@ -26,14 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-ssl</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-sso-ssl</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "SSL Authentication Extension",
|
||||
"namespace" : "ssl",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-sso</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
@@ -56,19 +54,11 @@
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
||||
<!-- Guacamole Extension API -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Core SSO support -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-sso-base</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Java servlet API -->
|
||||
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-auth-totp</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-auth-totp</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
@@ -127,8 +125,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guava - Utility Library -->
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "TOTP TFA Authentication Backend",
|
||||
"namespace" : "totp",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-display-statistics</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-display-statistics</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Display Statistic Toolbar",
|
||||
"namespace" : "display-stats",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-history-recording-storage</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-history-recording-storage</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
@@ -43,8 +41,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Session Recording Storage",
|
||||
"namespace" : "recording-storage",
|
||||
@@ -36,7 +36,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-vault</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -46,7 +46,6 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Jackson for YAML support -->
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-vault</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-vault-ksm</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -26,14 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-vault-ksm</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-vault-ksm</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-vault</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../../</relativePath>
|
||||
</parent>
|
||||
|
||||
@@ -47,14 +46,13 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Guacamole base key vault support -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-vault-base</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
|
||||
"guacamoleVersion" : "1.6.0",
|
||||
"guacamoleVersion" : "${project.version}",
|
||||
|
||||
"name" : "Keeper Secrets Manager",
|
||||
"namespace" : "keeper-secrets-manager",
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-vault</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-vault</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
@@ -50,18 +48,4 @@
|
||||
|
||||
</modules>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
||||
<!-- Guacamole Extension API -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
</project>
|
||||
+15
-3
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>extensions</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>extensions</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-client</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
@@ -134,6 +132,20 @@
|
||||
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
|
||||
<!-- Guacamole Extension API -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>${revision}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<profiles>
|
||||
|
||||
<!-- Build extensions with LGPL-licensed dependencies only if explicitly requested -->
|
||||
|
||||
@@ -26,19 +26,22 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-common-js</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-common-js</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-client</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
||||
<!--
|
||||
The directory receiving the result of filtering applied to all files beneath src/main/webapp-templates.
|
||||
-->
|
||||
<generated.webapp.dir>${project.build.directory}/generated-resources/webapp-templates</generated.webapp.dir>
|
||||
|
||||
<!--
|
||||
The location where temporary files should be stored for communicating
|
||||
between karma and firefox. The default location, /tmp, does not work
|
||||
@@ -73,12 +76,55 @@
|
||||
<scm>
|
||||
<url>https://github.com/apache/guacamole-client</url>
|
||||
<connection>scm:git:https://git.wip-us.apache.org/repos/asf/guacamole-client.git</connection>
|
||||
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<executions>
|
||||
|
||||
<!-- Filter any resources beneath src/main/webapp-templates -->
|
||||
<execution>
|
||||
<id>filter-webapp-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${generated.webapp.dir}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/webapp-templates</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- Include all other resources verbatim -->
|
||||
<execution>
|
||||
<id>copy-webapp-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${generated.webapp.dir}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/webapp</directory>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Assemble JS files into single .zip -->
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
@@ -111,6 +157,8 @@
|
||||
<charset>UTF-8</charset>
|
||||
<jsEngine>CLOSURE</jsEngine>
|
||||
|
||||
<webappSourceDir>${generated.webapp.dir}</webappSourceDir>
|
||||
|
||||
<jsSourceDir>/</jsSourceDir>
|
||||
<jsTargetDir>/</jsTargetDir>
|
||||
<jsFinalFile>all.js</jsFinalFile>
|
||||
|
||||
+1
-1
@@ -27,4 +27,4 @@ var Guacamole = Guacamole || {};
|
||||
*
|
||||
* @type {!string}
|
||||
*/
|
||||
Guacamole.API_VERSION = "1.6.0";
|
||||
Guacamole.API_VERSION = "${project.version}";
|
||||
@@ -25,7 +25,7 @@
|
||||
</formats>
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>src/main/webapp/modules/</directory>
|
||||
<directory>${generated.webapp.dir}/modules/</directory>
|
||||
<includes>
|
||||
<include>*.js</include>
|
||||
</includes>
|
||||
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-common</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-common</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-client</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<description>
|
||||
|
||||
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole-ext</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-client</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<description>
|
||||
@@ -87,8 +85,7 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-common</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<scope>compile</scope>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- JUnit -->
|
||||
|
||||
+10
-5
@@ -26,15 +26,13 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>1.6.0</version>
|
||||
<name>guacamole</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
<parent>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-client</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<relativePath>../</relativePath>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<description>
|
||||
@@ -254,14 +252,14 @@
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-ext</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Guacamole JavaScript API -->
|
||||
<dependency>
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-common-js</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<type>zip</type>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
@@ -374,6 +372,13 @@
|
||||
<version>1.2.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- JUnit for unit testing -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.guacamole.extension;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Representation of the Guacamole webapp version. This is used both to
|
||||
* represent the expected minimum webapp version required by an extension and
|
||||
* to represent the running version of Guacamole.
|
||||
*/
|
||||
public class GuacamoleVersion {
|
||||
|
||||
/**
|
||||
* Regular expression that splits a version number into its major, minor,
|
||||
* and patch components, as well as an optional version suffix.
|
||||
*/
|
||||
private static final Pattern VERSION_PATTERN = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(.+)?");
|
||||
|
||||
/**
|
||||
* The version of this copy of the Guacamole web application. This value is
|
||||
* substituted by Maven during the build.
|
||||
*/
|
||||
public static final GuacamoleVersion RUNNING_VERSION = new GuacamoleVersion("${project.version}");
|
||||
|
||||
/**
|
||||
* The first (leftmost) version number of a Guacamole version. This is the
|
||||
* number of greatest significance and denotes compatibility. If two
|
||||
* Guacamole versions have the same major number, extensions for the older
|
||||
* version should still work with the newer version.
|
||||
*/
|
||||
private final int major;
|
||||
|
||||
/**
|
||||
* The second (middle) version number of a Guacamole version. If two
|
||||
* Guacamole versions have the same major number but different minor
|
||||
* numbers, they would be expected to differ in the features available.
|
||||
*/
|
||||
private final int minor;
|
||||
|
||||
/**
|
||||
* The third (rightmost) version number of a Guacamole version. This is the
|
||||
* number of least significance and denotes minor changes or fixes. If
|
||||
* two Guacamole versions have the same major and minor numbers but
|
||||
* different patch numbers, the newer version would be expected to have
|
||||
* fixes or improvements that correct issues affecting the older version,
|
||||
* but would not be expected to have major new features.
|
||||
*/
|
||||
private final int patch;
|
||||
|
||||
/**
|
||||
* An arbitrary suffix that might be appended by downstream package
|
||||
* maintainers or vendors. A Guacamole version with a particular suffix
|
||||
* would be expected to have patches applied relative to the version without
|
||||
* the suffix but is otherwise compatible (as if the patch or minor numbers
|
||||
* differed instead of the suffix).
|
||||
*/
|
||||
private final String suffix;
|
||||
|
||||
/**
|
||||
* Creates a new GuacamoleVersion representing the version of Guacamole
|
||||
* that has the given version string. The version string must be in the
|
||||
* format "MAJOR.MINOR.PATCH" with an optional and arbitrary version
|
||||
* suffix.
|
||||
*
|
||||
* @param versionStr
|
||||
* The Guacamole version string to parse.
|
||||
*
|
||||
* @throws IllegalArgumentException
|
||||
* If the version string is not in the correct format.
|
||||
*/
|
||||
public GuacamoleVersion(String versionStr) throws IllegalArgumentException {
|
||||
|
||||
// Use all-zeroes without suffix to represent the wildcard version
|
||||
if ("*".equals(versionStr)) {
|
||||
major = minor = patch = 0;
|
||||
suffix = null;
|
||||
}
|
||||
|
||||
// Extract major/minor/patch and optional suffix from version string
|
||||
else {
|
||||
|
||||
Matcher versionMatcher = VERSION_PATTERN.matcher(versionStr);
|
||||
if (!versionMatcher.matches())
|
||||
throw new IllegalArgumentException("Format of version "
|
||||
+ "string \"" + versionStr + "\" is not valid");
|
||||
|
||||
major = Integer.parseInt(versionMatcher.group(1));
|
||||
minor = Integer.parseInt(versionMatcher.group(2));
|
||||
patch = Integer.parseInt(versionMatcher.group(3));
|
||||
suffix = versionMatcher.group(4);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this Guacamole version is expected to be compatible with
|
||||
* an extension that requires at least the given Guacamole version.
|
||||
*
|
||||
* @param required
|
||||
* The minimum Guacamole version required.
|
||||
*
|
||||
* @return
|
||||
* true if this Guacamole version is expected to be compatible with an
|
||||
* extension requiring at least the given version, false otherwise.
|
||||
*/
|
||||
public boolean provides(GuacamoleVersion required) {
|
||||
|
||||
// Wildcard version always matches
|
||||
if (required.major == 0 && required.minor == 0 && required.patch == 0
|
||||
&& required.suffix == null)
|
||||
return true;
|
||||
|
||||
// Major version component MUST be identical
|
||||
if (this.major != required.major)
|
||||
return false;
|
||||
|
||||
// Minor version component must be the same or greater than the
|
||||
// requirement
|
||||
if (this.minor < required.minor)
|
||||
return false;
|
||||
|
||||
// If both major and minor are identical, the patch version component
|
||||
// must be the same or greater than the requirement
|
||||
if (this.minor == required.minor && this.patch < required.patch)
|
||||
return false;
|
||||
|
||||
// Any suffix denotes vendor-specific patching that must be assumed to
|
||||
// be an arbitrary requirement only satisfied by that suffix. If no
|
||||
// suffix is required, any suffix of the current Guacamole version can
|
||||
// just be ignored.
|
||||
|
||||
if (required.suffix == null)
|
||||
return true;
|
||||
|
||||
return required.suffix.equals(this.suffix);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -24,7 +24,6 @@ import com.google.inject.servlet.ServletModule;
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
@@ -57,27 +56,6 @@ public class ExtensionModule extends ServletModule {
|
||||
*/
|
||||
private final Logger logger = LoggerFactory.getLogger(ExtensionModule.class);
|
||||
|
||||
/**
|
||||
* The version strings of all Guacamole versions whose extensions are
|
||||
* compatible with this release.
|
||||
*/
|
||||
private static final List<String> ALLOWED_GUACAMOLE_VERSIONS =
|
||||
Collections.unmodifiableList(Arrays.asList(
|
||||
"*",
|
||||
"1.0.0",
|
||||
"1.1.0",
|
||||
"1.2.0",
|
||||
"1.3.0",
|
||||
"1.4.0",
|
||||
"1.5.0",
|
||||
"1.5.1",
|
||||
"1.5.2",
|
||||
"1.5.3",
|
||||
"1.5.4",
|
||||
"1.5.5",
|
||||
"1.6.0"
|
||||
));
|
||||
|
||||
/**
|
||||
* The name of the directory within GUACAMOLE_HOME containing any .jars
|
||||
* which should be included in the classpath of all extensions.
|
||||
@@ -394,21 +372,6 @@ public class ExtensionModule extends ServletModule {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the given version of Guacamole is compatible with this
|
||||
* version of Guacamole as far as extensions are concerned.
|
||||
*
|
||||
* @param guacamoleVersion
|
||||
* The version of Guacamole the extension was built for.
|
||||
*
|
||||
* @return
|
||||
* true if the given version of Guacamole is compatible with this
|
||||
* version of Guacamole, false otherwise.
|
||||
*/
|
||||
private boolean isCompatible(String guacamoleVersion) {
|
||||
return ALLOWED_GUACAMOLE_VERSIONS.contains(guacamoleVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the set of identifiers of all authentication providers whose
|
||||
* internal failures should be tolerated during the authentication process.
|
||||
@@ -513,7 +476,8 @@ public class ExtensionModule extends ServletModule {
|
||||
Extension extension = new Extension(getParentClassLoader(), extensionFile, temporaryFiles);
|
||||
|
||||
// Validate Guacamole version of extension
|
||||
if (!isCompatible(extension.getGuacamoleVersion())) {
|
||||
GuacamoleVersion requiredVersion = new GuacamoleVersion(extension.getGuacamoleVersion());
|
||||
if (!GuacamoleVersion.RUNNING_VERSION.provides(requiredVersion)) {
|
||||
logger.debug("Declared Guacamole version \"{}\" of extension \"{}\" is not compatible with this version of Guacamole.",
|
||||
extension.getGuacamoleVersion(), extensionFile.getName());
|
||||
throw new GuacamoleServerException("Extension \"" + extension.getName() + "\" is not "
|
||||
@@ -523,7 +487,7 @@ public class ExtensionModule extends ServletModule {
|
||||
extensions.add(extension);
|
||||
|
||||
}
|
||||
catch (GuacamoleException e) {
|
||||
catch (GuacamoleException | IllegalArgumentException e) {
|
||||
logger.error("Extension \"{}\" could not be loaded: {}",
|
||||
extensionFile.getName(), e.getMessage(), e);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.guacamole.extension;
|
||||
|
||||
import java.util.Arrays;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Unit tests which verify GuacamoleVersion correctly parses and compares
|
||||
* Guacamole versions.
|
||||
*/
|
||||
public class GuacamoleVersionTest {
|
||||
|
||||
/**
|
||||
* Verifies that trivially valid version numbers are correctly parsed.
|
||||
*/
|
||||
@Test
|
||||
public void testValidVersion() {
|
||||
GuacamoleVersion version = new GuacamoleVersion("1.2.3");
|
||||
Assert.assertTrue(version.provides(version));
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that invalid version numbers correctly fail to parse.
|
||||
*/
|
||||
@Test
|
||||
public void testInvalidVersion() {
|
||||
for (String invalid : Arrays.asList("1.2")) {
|
||||
try {
|
||||
GuacamoleVersion version = new GuacamoleVersion(invalid);
|
||||
Assert.fail("Invalid Guacamole version string \""
|
||||
+ invalid + "\" should have failed to parse.");
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
// Expected
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that newer versions are recognized as providing older versions
|
||||
* when they differ by minor number (but not the other way around).
|
||||
*/
|
||||
@Test
|
||||
public void testMinorNewerProvidesOlder() {
|
||||
|
||||
GuacamoleVersion olderVersion = new GuacamoleVersion("1.2.3");
|
||||
GuacamoleVersion newerVersion = new GuacamoleVersion("1.22.3");
|
||||
|
||||
Assert.assertTrue(newerVersion.provides(olderVersion));
|
||||
Assert.assertFalse(olderVersion.provides(newerVersion));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that newer versions are recognized as providing older versions
|
||||
* when they differ by patch number (but not the other way around).
|
||||
*/
|
||||
@Test
|
||||
public void testPatchNewerProvidesOlder() {
|
||||
|
||||
GuacamoleVersion olderVersion = new GuacamoleVersion("1.2.3");
|
||||
GuacamoleVersion newerVersion = new GuacamoleVersion("1.2.7");
|
||||
|
||||
Assert.assertTrue(newerVersion.provides(olderVersion));
|
||||
Assert.assertFalse(olderVersion.provides(newerVersion));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that two versions are NOT recognized as providing each other
|
||||
* when they differ by major number (regardless of which is newer).
|
||||
*/
|
||||
@Test
|
||||
public void testPatchMajorIncompatible() {
|
||||
|
||||
GuacamoleVersion olderVersion = new GuacamoleVersion("1.2.3");
|
||||
GuacamoleVersion newerVersion = new GuacamoleVersion("2.2.3");
|
||||
|
||||
Assert.assertFalse(newerVersion.provides(olderVersion));
|
||||
Assert.assertFalse(olderVersion.provides(newerVersion));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that a version number with an arbitrary suffix is recognized
|
||||
* as providing that same version without the suffix (but not the other way
|
||||
* around).
|
||||
*/
|
||||
@Test
|
||||
public void testCompatibleSuffix() {
|
||||
|
||||
GuacamoleVersion olderVersion = new GuacamoleVersion("1.2.3");
|
||||
GuacamoleVersion newerVersion = new GuacamoleVersion("1.2.3-foo");
|
||||
|
||||
Assert.assertTrue(newerVersion.provides(olderVersion));
|
||||
Assert.assertFalse(olderVersion.provides(newerVersion));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that two version numbers that differ by arbitrary suffix are
|
||||
* NOT recognized as providing each other, even when the version numbers
|
||||
* are otherwise the same.
|
||||
*/
|
||||
@Test
|
||||
public void testIncompatibleSuffix() {
|
||||
|
||||
GuacamoleVersion olderVersion = new GuacamoleVersion("1.2.3-bar");
|
||||
GuacamoleVersion newerVersion = new GuacamoleVersion("1.2.3-foo");
|
||||
|
||||
Assert.assertFalse(newerVersion.provides(olderVersion));
|
||||
Assert.assertFalse(olderVersion.provides(newerVersion));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that the special wildcard version is provided by any version,
|
||||
* but not the other way around.
|
||||
*/
|
||||
@Test
|
||||
public void testWildcardVersion() {
|
||||
|
||||
GuacamoleVersion specificVersion = new GuacamoleVersion("1.2.3-foo");
|
||||
GuacamoleVersion wildcardVersion = new GuacamoleVersion("*");
|
||||
|
||||
Assert.assertTrue(specificVersion.provides(wildcardVersion));
|
||||
Assert.assertFalse(wildcardVersion.provides(specificVersion));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -26,7 +26,7 @@
|
||||
<groupId>org.apache.guacamole</groupId>
|
||||
<artifactId>guacamole-client</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.6.0</version>
|
||||
<version>${revision}</version>
|
||||
<name>guacamole-client</name>
|
||||
<url>http://guacamole.apache.org/</url>
|
||||
|
||||
@@ -35,6 +35,12 @@
|
||||
<!-- Core properties -->
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
<!-- The Guacamole version for the entirety of guacamole-client (this is
|
||||
referenced by this and all other pom.xml files within guacamole-client,
|
||||
and is a special case within Maven as one of the few properties allowed
|
||||
within the pom.xml version and intended for this purpose) -->
|
||||
<revision>1.6.1</revision>
|
||||
|
||||
<!-- Dependency versions -->
|
||||
<guava.version>32.1.3-jre</guava.version>
|
||||
<guice.version>5.1.0</guice.version>
|
||||
@@ -201,6 +207,36 @@
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Bake-in properties like ${revision} so that downstream users of
|
||||
libraries can freely use these properties for their own purposes.
|
||||
This also removes the need to publish the guacamole-client parent
|
||||
pom.xml to Maven Central. -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>flatten-maven-plugin</artifactId>
|
||||
<version>1.7.3</version>
|
||||
<configuration>
|
||||
<flattenMode>oss</flattenMode>
|
||||
<updatePomFile>true</updatePomFile>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>flatten</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>flatten</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>flatten.clean</id>
|
||||
<phase>clean</phase>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
@@ -490,6 +526,47 @@
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!-- Automatically filter Java source if located within src/main/java-templates -->
|
||||
<profile>
|
||||
<id>filter-java-source</id>
|
||||
<activation>
|
||||
<file><exists>src/main/java-templates</exists></file>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>templating-maven-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>filter-java-source</id>
|
||||
<goals>
|
||||
<goal>filter-sources</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!-- Automatically filter resources if located within src/main/resource-templates -->
|
||||
<profile>
|
||||
<id>filter-resources</id>
|
||||
<activation>
|
||||
<file><exists>src/main/resource-templates</exists></file>
|
||||
</activation>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resource-templates</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!-- Perform automated dependency checks if "checkDependencies" is set to "true" -->
|
||||
<profile>
|
||||
<id>check-dependencies</id>
|
||||
|
||||
Reference in new issue
Block a user