diff --git a/extensions/guacamole-auth-cas/pom.xml b/extensions/guacamole-auth-cas/pom.xml
index 2ffe8182e..d168e5124 100644
--- a/extensions/guacamole-auth-cas/pom.xml
+++ b/extensions/guacamole-auth-cas/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-cas
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -152,19 +159,16 @@
com.google.guava
guava
- 27.0.1-jre
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
@@ -187,19 +191,16 @@
org.junit.jupiter
junit-jupiter-api
- 5.6.0
test
org.junit.jupiter
junit-jupiter-params
- 5.6.0
test
org.junit.jupiter
junit-jupiter-engine
- 5.6.0
test
diff --git a/extensions/guacamole-auth-duo/pom.xml b/extensions/guacamole-auth-duo/pom.xml
index 240fcabd6..948677970 100644
--- a/extensions/guacamole-auth-duo/pom.xml
+++ b/extensions/guacamole-auth-duo/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-duo
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -221,19 +228,16 @@
com.google.guava
guava
- 27.0.1-jre
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
diff --git a/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/form/DuoSignedResponseField.java b/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/form/DuoSignedResponseField.java
index 192cbf8b1..df46a3122 100644
--- a/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/form/DuoSignedResponseField.java
+++ b/extensions/guacamole-auth-duo/src/main/java/org/apache/guacamole/auth/duo/form/DuoSignedResponseField.java
@@ -20,7 +20,6 @@
package org.apache.guacamole.auth.duo.form;
import org.apache.guacamole.form.Field;
-import org.codehaus.jackson.annotate.JsonProperty;
/**
* A custom field type which uses the DuoWeb API to produce a signed response
@@ -81,8 +80,7 @@ public class DuoSignedResponseField extends Field {
* @return
* The hostname of the DuoWeb API endpoint.
*/
- @JsonProperty("apiHost")
- public String getAPIHost() {
+ public String getApiHost() {
return apiHost;
}
diff --git a/extensions/guacamole-auth-header/pom.xml b/extensions/guacamole-auth-header/pom.xml
index 59afa382e..e93955283 100644
--- a/extensions/guacamole-auth-header/pom.xml
+++ b/extensions/guacamole-auth-header/pom.xml
@@ -26,10 +26,17 @@
org.apache.guacamole
guacamole-auth-header
jar
- 1.2.0
+ 1.3.0
guacamole-auth-header
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -130,7 +137,7 @@
org.apache.guacamole
guacamole-ext
- 1.2.0
+ 1.3.0
provided
@@ -138,12 +145,10 @@
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml
index b052ee7c6..5f9ceb7ee 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/pom.xml
@@ -29,10 +29,6 @@
guacamole-auth-jdbc-base
http://guacamole.apache.org/
-
- UTF-8
-
-
org.apache.guacamole
guacamole-auth-jdbc
@@ -40,6 +36,10 @@
../../
+
+ UTF-8
+
+
@@ -123,19 +123,16 @@
com.google.inject
guice
- 4.1.0
com.google.inject.extensions
guice-multibindings
- 4.1.0
com.google.guava
guava
- 27.0.1-jre
diff --git a/extensions/guacamole-auth-jdbc/pom.xml b/extensions/guacamole-auth-jdbc/pom.xml
index 5ac6b388e..96599d494 100644
--- a/extensions/guacamole-auth-jdbc/pom.xml
+++ b/extensions/guacamole-auth-jdbc/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-jdbc
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
diff --git a/extensions/guacamole-auth-json/pom.xml b/extensions/guacamole-auth-json/pom.xml
index 128f170b1..72dc75431 100644
--- a/extensions/guacamole-auth-json/pom.xml
+++ b/extensions/guacamole-auth-json/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-json
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -112,19 +119,22 @@
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
- org.codehaus.jackson
- jackson-mapper-asl
- 1.9.2
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+
+
+ com.google.guava
+ guava
diff --git a/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserData.java b/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserData.java
index 41e02a4bd..2e3048f0f 100644
--- a/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserData.java
+++ b/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserData.java
@@ -19,12 +19,12 @@
package org.apache.guacamole.auth.json.user;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.annotate.JsonProperty;
/**
* All data associated with a particular user, as parsed from the JSON supplied
diff --git a/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataDenylist.java b/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataDenylist.java
index bc0142ed7..07357d1d7 100644
--- a/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataDenylist.java
+++ b/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataDenylist.java
@@ -19,11 +19,11 @@
package org.apache.guacamole.auth.json.user;
+import com.google.common.io.BaseEncoding;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import javax.xml.bind.DatatypeConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -101,7 +101,7 @@ public class UserDataDenylist {
return false;
// Add to denylist only if not already present
- String signatureHex = DatatypeConverter.printHexBinary(signature);
+ String signatureHex = BaseEncoding.base16().encode(signature);
return denylist.putIfAbsent(signatureHex, data) == null;
}
diff --git a/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataService.java b/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataService.java
index 53922d592..e3fee11e3 100644
--- a/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataService.java
+++ b/extensions/guacamole-auth-json/src/main/java/org/apache/guacamole/auth/json/user/UserDataService.java
@@ -19,6 +19,8 @@
package org.apache.guacamole.auth.json.user;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.io.BaseEncoding;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -30,7 +32,6 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
-import javax.xml.bind.DatatypeConverter;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.auth.json.ConfigurationService;
import org.apache.guacamole.auth.json.CryptoService;
@@ -43,7 +44,6 @@ import org.apache.guacamole.net.auth.permission.ObjectPermissionSet;
import org.apache.guacamole.net.auth.simple.SimpleDirectory;
import org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet;
import org.apache.guacamole.net.auth.simple.SimpleUser;
-import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -142,7 +142,7 @@ public class UserDataService {
// Decrypt using defined encryption key
byte[] decrypted = cryptoService.decrypt(
cryptoService.createEncryptionKey(confService.getSecretKey()),
- DatatypeConverter.parseBase64Binary(base64)
+ BaseEncoding.base64().decode(base64)
);
// Abort if decrypted value cannot possibly have a signature AND data
diff --git a/extensions/guacamole-auth-ldap/pom.xml b/extensions/guacamole-auth-ldap/pom.xml
index e14e27184..8eb94326c 100644
--- a/extensions/guacamole-auth-ldap/pom.xml
+++ b/extensions/guacamole-auth-ldap/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-ldap
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -158,12 +165,10 @@
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
diff --git a/extensions/guacamole-auth-openid/pom.xml b/extensions/guacamole-auth-openid/pom.xml
index 691443a0b..f0a904f1e 100644
--- a/extensions/guacamole-auth-openid/pom.xml
+++ b/extensions/guacamole-auth-openid/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-openid
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -198,12 +205,10 @@
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml
index 75132925b..e5609856c 100644
--- a/extensions/guacamole-auth-quickconnect/pom.xml
+++ b/extensions/guacamole-auth-quickconnect/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-quickconnect
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
diff --git a/extensions/guacamole-auth-radius/pom.xml b/extensions/guacamole-auth-radius/pom.xml
index 675ed081c..8447d5796 100644
--- a/extensions/guacamole-auth-radius/pom.xml
+++ b/extensions/guacamole-auth-radius/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-radius
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -186,19 +193,16 @@
com.google.guava
guava
- 27.0.1-jre
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
diff --git a/extensions/guacamole-auth-saml/pom.xml b/extensions/guacamole-auth-saml/pom.xml
index 77671c778..71e7d94ed 100644
--- a/extensions/guacamole-auth-saml/pom.xml
+++ b/extensions/guacamole-auth-saml/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-saml
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
diff --git a/extensions/guacamole-auth-totp/pom.xml b/extensions/guacamole-auth-totp/pom.xml
index 261ded2a7..b5d7bdb39 100644
--- a/extensions/guacamole-auth-totp/pom.xml
+++ b/extensions/guacamole-auth-totp/pom.xml
@@ -30,6 +30,13 @@
guacamole-auth-totp
http://guacamole.incubator.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../../
+
+
UTF-8
@@ -225,19 +232,16 @@
com.google.guava
guava
- 27.0.1-jre
com.google.inject
guice
- 3.0
com.google.inject.extensions
guice-multibindings
- 3.0
diff --git a/extensions/guacamole-auth-totp/src/main/java/org/apache/guacamole/auth/totp/form/AuthenticationCodeField.java b/extensions/guacamole-auth-totp/src/main/java/org/apache/guacamole/auth/totp/form/AuthenticationCodeField.java
index 58b6527e4..46661f79e 100644
--- a/extensions/guacamole-auth-totp/src/main/java/org/apache/guacamole/auth/totp/form/AuthenticationCodeField.java
+++ b/extensions/guacamole-auth-totp/src/main/java/org/apache/guacamole/auth/totp/form/AuthenticationCodeField.java
@@ -35,7 +35,6 @@ import org.apache.guacamole.auth.totp.user.UserTOTPKey;
import org.apache.guacamole.auth.totp.conf.ConfigurationService;
import org.apache.guacamole.form.Field;
import org.apache.guacamole.totp.TOTPGenerator;
-import org.codehaus.jackson.annotate.JsonProperty;
/**
* Field which prompts the user for an authentication code generated via TOTP.
@@ -242,8 +241,7 @@ public class AuthenticationCodeField extends Field {
* If the configuration information required for generating the key URI
* cannot be read from guacamole.properties.
*/
- @JsonProperty("keyUri")
- public URI getKeyURI() throws GuacamoleException {
+ public URI getKeyUri() throws GuacamoleException {
// Do not generate a key URI if no key is being exposed
if (key == null)
@@ -276,11 +274,10 @@ public class AuthenticationCodeField extends Field {
* If the configuration information required for generating the QR code
* cannot be read from guacamole.properties.
*/
- @JsonProperty("qrCode")
- public String getQRCode() throws GuacamoleException {
+ public String getQrCode() throws GuacamoleException {
// Do not generate a QR code if no key is being exposed
- URI keyURI = getKeyURI();
+ URI keyURI = getKeyUri();
if (keyURI == null)
return null;
diff --git a/guacamole-common-js/pom.xml b/guacamole-common-js/pom.xml
index 9025e9a95..4d5d7e045 100644
--- a/guacamole-common-js/pom.xml
+++ b/guacamole-common-js/pom.xml
@@ -30,6 +30,13 @@
guacamole-common-js
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../
+
+
The base JavaScript API of the Guacamole project, providing JavaScript
support for the Guacamole stack, including a full client
diff --git a/guacamole-common/pom.xml b/guacamole-common/pom.xml
index f9fb82afb..f4e175ead 100644
--- a/guacamole-common/pom.xml
+++ b/guacamole-common/pom.xml
@@ -30,6 +30,13 @@
guacamole-common
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../
+
+
The base Java API of the Guacamole project, providing Java support for
the Guacamole stack.
@@ -157,7 +164,6 @@
org.slf4j
slf4j-api
- 1.7.7
diff --git a/guacamole-ext/pom.xml b/guacamole-ext/pom.xml
index 455c54408..bf6dee6fa 100644
--- a/guacamole-ext/pom.xml
+++ b/guacamole-ext/pom.xml
@@ -30,6 +30,13 @@
guacamole-ext
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../
+
+
The Java API for extending the main Guacamole web application. This
is not needed for authoring a new Guacamole-based web application.
@@ -151,14 +158,6 @@
provided
-
-
- javax.xml.bind
- jaxb-api
- 2.2.2
- provided
-
-
org.apache.guacamole
@@ -175,11 +174,16 @@
test
+
+
+ com.google.guava
+ guava
+
+
- org.codehaus.jackson
- jackson-mapper-asl
- 1.9.2
+ com.fasterxml.jackson.core
+ jackson-databind
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/environment/LocalEnvironment.java b/guacamole-ext/src/main/java/org/apache/guacamole/environment/LocalEnvironment.java
index b1d486518..eecfdfcac 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/environment/LocalEnvironment.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/environment/LocalEnvironment.java
@@ -19,6 +19,7 @@
package org.apache.guacamole.environment;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
@@ -27,7 +28,6 @@ import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
-import org.codehaus.jackson.map.ObjectMapper;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.GuacamoleServerException;
import org.apache.guacamole.net.auth.GuacamoleProxyConfiguration;
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/form/Field.java b/guacamole-ext/src/main/java/org/apache/guacamole/form/Field.java
index d583f6f78..aa1c9257b 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/form/Field.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/form/Field.java
@@ -19,8 +19,9 @@
package org.apache.guacamole.form;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.Collection;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
/**
* Represents an arbitrary field, such as an HTTP parameter, the parameter of a
@@ -30,7 +31,7 @@ import org.codehaus.jackson.map.annotate.JsonSerialize;
* either through the web application itself (see FormService.js) or through
* extensions.
*/
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(value=Include.NON_NULL)
public class Field {
/**
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/form/FieldOption.java b/guacamole-ext/src/main/java/org/apache/guacamole/form/FieldOption.java
index 30d4c5377..3a501a654 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/form/FieldOption.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/form/FieldOption.java
@@ -19,12 +19,13 @@
package org.apache.guacamole.form;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
/**
* Describes an available legal value for an enumerated field.
*/
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(value=Include.NON_NULL)
public class FieldOption {
/**
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/form/Form.java b/guacamole-ext/src/main/java/org/apache/guacamole/form/Form.java
index bdbd04f21..d71b14054 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/form/Form.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/form/Form.java
@@ -19,14 +19,15 @@
package org.apache.guacamole.form;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.ArrayList;
import java.util.Collection;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
/**
* Information which describes logical set of fields.
*/
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(value=Include.NON_NULL)
public class Form {
/**
diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/properties/ByteArrayProperty.java b/guacamole-ext/src/main/java/org/apache/guacamole/properties/ByteArrayProperty.java
index eaa012b16..98aaa26d6 100644
--- a/guacamole-ext/src/main/java/org/apache/guacamole/properties/ByteArrayProperty.java
+++ b/guacamole-ext/src/main/java/org/apache/guacamole/properties/ByteArrayProperty.java
@@ -19,7 +19,7 @@
package org.apache.guacamole.properties;
-import javax.xml.bind.DatatypeConverter;
+import com.google.common.io.BaseEncoding;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.GuacamoleServerException;
@@ -39,7 +39,7 @@ public abstract class ByteArrayProperty implements GuacamoleProperty {
// Return value parsed from hex
try {
- return DatatypeConverter.parseHexBinary(value);
+ return BaseEncoding.base16().decode(value);
}
// Fail parse if hex invalid
diff --git a/guacamole/pom.xml b/guacamole/pom.xml
index 3e8941da7..9225582a9 100644
--- a/guacamole/pom.xml
+++ b/guacamole/pom.xml
@@ -30,6 +30,13 @@
guacamole
http://guacamole.apache.org/
+
+ org.apache.guacamole
+ guacamole-client
+ 1.3.0
+ ../
+
+
The Guacamole web application, providing authentication and an HTML5
remote desktop client.
@@ -252,17 +259,14 @@
org.slf4j
slf4j-api
- 1.7.7
org.slf4j
jul-to-slf4j
- 1.7.7
ch.qos.logback
logback-classic
- 1.2.3
@@ -440,38 +444,32 @@
com.google.inject
guice
- 4.2.3
com.google.inject.extensions
guice-assistedinject
- 4.2.3
-
-
com.google.inject.extensions
guice-servlet
- 4.2.3
org.glassfish.jersey.containers
jersey-container-servlet-core
- 2.31
org.glassfish.jersey.inject
jersey-hk2
- 2.31
-
-
org.glassfish.hk2
guice-bridge
- 2.6.1
+
+
+ org.glassfish.jersey.media
+ jersey-media-json-jackson
@@ -481,27 +479,10 @@
1.0
-
-
- org.glassfish.jersey.media
- jersey-media-json-jackson
- 2.31
-
-
-
-
- javax.xml.stream
- stax-api
-
-
-
-
-
com.google.guava
guava
- 27.0.1-jre
diff --git a/guacamole/src/main/java/org/apache/guacamole/extension/Extension.java b/guacamole/src/main/java/org/apache/guacamole/extension/Extension.java
index 9d61abbb6..f46a72da1 100644
--- a/guacamole/src/main/java/org/apache/guacamole/extension/Extension.java
+++ b/guacamole/src/main/java/org/apache/guacamole/extension/Extension.java
@@ -19,6 +19,8 @@
package org.apache.guacamole.extension;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -30,8 +32,6 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import org.apache.guacamole.net.event.listener.Listener;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.map.ObjectMapper;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.GuacamoleServerException;
import org.apache.guacamole.net.auth.AuthenticationProvider;
diff --git a/guacamole/src/main/java/org/apache/guacamole/extension/ExtensionManifest.java b/guacamole/src/main/java/org/apache/guacamole/extension/ExtensionManifest.java
index 2ed6c7579..b30c5dd5e 100644
--- a/guacamole/src/main/java/org/apache/guacamole/extension/ExtensionManifest.java
+++ b/guacamole/src/main/java/org/apache/guacamole/extension/ExtensionManifest.java
@@ -19,9 +19,9 @@
package org.apache.guacamole.extension;
+import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Collection;
import java.util.Map;
-import org.codehaus.jackson.annotate.JsonProperty;
/**
* Java representation of the JSON manifest contained within every Guacamole
diff --git a/guacamole/src/main/java/org/apache/guacamole/extension/LanguageResourceService.java b/guacamole/src/main/java/org/apache/guacamole/extension/LanguageResourceService.java
index d4e1d37ee..3cb2acbb9 100644
--- a/guacamole/src/main/java/org/apache/guacamole/extension/LanguageResourceService.java
+++ b/guacamole/src/main/java/org/apache/guacamole/extension/LanguageResourceService.java
@@ -19,6 +19,10 @@
package org.apache.guacamole.extension;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
@@ -29,10 +33,6 @@ import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.ServletContext;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.node.JsonNodeFactory;
-import org.codehaus.jackson.node.ObjectNode;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.environment.Environment;
import org.apache.guacamole.properties.StringSetProperty;
@@ -178,17 +178,17 @@ public class LanguageResourceService {
// Create mutable copy of original
ObjectNode newNode = JsonNodeFactory.instance.objectNode();
- Iterator fieldNames = original.getFieldNames();
+ Iterator fieldNames = original.fieldNames();
while (fieldNames.hasNext()) {
String fieldName = fieldNames.next();
- newNode.put(fieldName, original.get(fieldName));
+ newNode.set(fieldName, original.get(fieldName));
}
// Merge each field
- fieldNames = overlay.getFieldNames();
+ fieldNames = overlay.fieldNames();
while (fieldNames.hasNext()) {
String fieldName = fieldNames.next();
- newNode.put(fieldName, mergeTranslations(original.get(fieldName), overlay.get(fieldName)));
+ newNode.set(fieldName, mergeTranslations(original.get(fieldName), overlay.get(fieldName)));
}
return newNode;
@@ -425,7 +425,7 @@ public class LanguageResourceService {
// Attempt to read language name from node
String languageName;
- if (nameNode == null || (languageName = nameNode.getTextValue()) == null) {
+ if (nameNode == null || (languageName = nameNode.textValue()) == null) {
logger.warn("Root-level \"" + LANGUAGE_DISPLAY_NAME_KEY + "\" string missing or invalid in language \"{}\"", languageKey);
languageName = languageKey;
}
diff --git a/guacamole/src/main/java/org/apache/guacamole/rest/connection/APIConnection.java b/guacamole/src/main/java/org/apache/guacamole/rest/connection/APIConnection.java
index e402e67a9..f1e521b3d 100644
--- a/guacamole/src/main/java/org/apache/guacamole/rest/connection/APIConnection.java
+++ b/guacamole/src/main/java/org/apache/guacamole/rest/connection/APIConnection.java
@@ -19,11 +19,12 @@
package org.apache.guacamole.rest.connection;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.Collection;
import java.util.Date;
import java.util.Map;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.net.auth.Connection;
import org.apache.guacamole.protocol.GuacamoleConfiguration;
@@ -33,7 +34,7 @@ import org.apache.guacamole.rest.sharingprofile.APISharingProfile;
* A simple connection to expose through the REST endpoints.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(value=Include.NON_NULL)
public class APIConnection {
/**
diff --git a/guacamole/src/main/java/org/apache/guacamole/rest/connectiongroup/APIConnectionGroup.java b/guacamole/src/main/java/org/apache/guacamole/rest/connectiongroup/APIConnectionGroup.java
index b9597d94f..3ab1f42bd 100644
--- a/guacamole/src/main/java/org/apache/guacamole/rest/connectiongroup/APIConnectionGroup.java
+++ b/guacamole/src/main/java/org/apache/guacamole/rest/connectiongroup/APIConnectionGroup.java
@@ -19,10 +19,11 @@
package org.apache.guacamole.rest.connectiongroup;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.Collection;
import java.util.Map;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.apache.guacamole.net.auth.ConnectionGroup;
import org.apache.guacamole.net.auth.ConnectionGroup.Type;
import org.apache.guacamole.rest.connection.APIConnection;
@@ -31,7 +32,7 @@ import org.apache.guacamole.rest.connection.APIConnection;
* A simple connection group to expose through the REST endpoints.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(value=Include.NON_NULL)
public class APIConnectionGroup {
/**
diff --git a/guacamole/src/main/java/org/apache/guacamole/rest/sharingprofile/APISharingProfile.java b/guacamole/src/main/java/org/apache/guacamole/rest/sharingprofile/APISharingProfile.java
index fe4db5097..04c61af9d 100644
--- a/guacamole/src/main/java/org/apache/guacamole/rest/sharingprofile/APISharingProfile.java
+++ b/guacamole/src/main/java/org/apache/guacamole/rest/sharingprofile/APISharingProfile.java
@@ -19,14 +19,17 @@
package org.apache.guacamole.rest.sharingprofile;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.Map;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.apache.guacamole.net.auth.SharingProfile;
/**
* The external representation used by the REST API for sharing profiles.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
+@JsonInclude(value=Include.NON_NULL)
public class APISharingProfile {
/**
diff --git a/guacamole/src/main/java/org/apache/guacamole/rest/user/APIUser.java b/guacamole/src/main/java/org/apache/guacamole/rest/user/APIUser.java
index e71b5d278..f018074b6 100644
--- a/guacamole/src/main/java/org/apache/guacamole/rest/user/APIUser.java
+++ b/guacamole/src/main/java/org/apache/guacamole/rest/user/APIUser.java
@@ -19,17 +19,18 @@
package org.apache.guacamole.rest.user;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.Date;
import java.util.Map;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.apache.guacamole.net.auth.User;
/**
* A simple User to expose through the REST endpoints.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(value=Include.NON_NULL)
public class APIUser {
/**
diff --git a/guacamole/src/main/java/org/apache/guacamole/rest/usergroup/APIUserGroup.java b/guacamole/src/main/java/org/apache/guacamole/rest/usergroup/APIUserGroup.java
index c2087b8aa..df4847bc9 100644
--- a/guacamole/src/main/java/org/apache/guacamole/rest/usergroup/APIUserGroup.java
+++ b/guacamole/src/main/java/org/apache/guacamole/rest/usergroup/APIUserGroup.java
@@ -19,16 +19,17 @@
package org.apache.guacamole.rest.usergroup;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import java.util.Map;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.apache.guacamole.net.auth.UserGroup;
/**
* A simple UserGroup to expose through the REST endpoints.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
+@JsonInclude(value=Include.NON_NULL)
public class APIUserGroup {
/**
diff --git a/pom.xml b/pom.xml
index a28587cd6..a8a10dd55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,14 @@
UTF-8
+ 30.1-jre
+ 4.2.3
+ 2.6.1
+ 2.10.1
+ 2.31
+ 5.6.0
+ 1.2.3
+ 1.7.30
@@ -139,4 +147,116 @@
+
+
+
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+
+
+ com.google.inject
+ guice
+ ${guice.version}
+
+
+ com.google.inject.extensions
+ guice-assistedinject
+ ${guice.version}
+
+
+ com.google.inject.extensions
+ guice-multibindings
+ ${guice.version}
+
+
+ com.google.inject.extensions
+ guice-servlet
+ ${guice.version}
+
+
+
+
+ org.glassfish.jersey.containers
+ jersey-container-servlet-core
+ ${jersey.version}
+
+
+ org.glassfish.jersey.inject
+ jersey-hk2
+ ${jersey.version}
+
+
+ org.glassfish.hk2
+ guice-bridge
+ ${guice-bridge.version}
+
+
+
+
+ org.glassfish.jersey.media
+ jersey-media-json-jackson
+ ${jersey.version}
+
+
+
+
+ javax.xml.stream
+ stax-api
+
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ ${jackson.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+ org.slf4j
+ jul-to-slf4j
+ ${slf4j.version}
+
+
+ ch.qos.logback
+ logback-classic
+ ${logback.version}
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ ${junit.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit.version}
+
+
+
+
+