[32/50] guacamole-client git commit: GUACAMOLE-38: Fix use of superclass methods.
GUACAMOLE-38: Fix use of superclass methods. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6dad254c Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6dad254c Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6dad254c Branch: refs/heads/master Commit: 6dad254c14dcd8ee1e4781c09089668f9ddba0a3 Parents: f563925 Author: Nick Couchman Authored: Sat May 12 07:44:09 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectionGroup.java | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6dad254c/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java index 8419cf0..b087c35 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java @@ -54,9 +54,10 @@ public class QuickConnectionGroup extends AbstractConnectionGroup { */ public QuickConnectionGroup(String name, String identifier) { -setName(name); -setIdentifier(identifier); -setType(ConnectionGroup.Type.ORGANIZATIONAL); +super(); +super.setName(name); +super.setIdentifier(identifier); +super.setType(ConnectionGroup.Type.ORGANIZATIONAL); }
[14/50] guacamole-client git commit: GUACAMOLE-38: Make placeholder translatable.
GUACAMOLE-38: Make placeholder translatable. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/c50d3725 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/c50d3725 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/c50d3725 Branch: refs/heads/master Commit: c50d372517167d2ed9e9386fba0807c99622b777 Parents: da363f8 Author: Nick Couchman Authored: Sat Mar 24 22:18:01 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../src/main/resources/templates/quickconnectField.html | 2 +- .../src/main/resources/translations/en.json | 4 2 files changed, 5 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c50d3725/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html index d9b5a4d..114f59a 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html @@ -2,7 +2,7 @@ - + Connect http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c50d3725/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json index b080d4b..1f7bb3d 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json @@ -2,6 +2,10 @@ "DATA_SOURCE_QUICKCONNECT" : { "NAME" : "QuickConnect" +}, + +"QUICKCONNECT" : { +"FIELD_PLACEHOLDER_URI" : "Enter Connection URI" } }
[35/50] guacamole-client git commit: GUACAMOLE-38: Add unit test for query string parser.
GUACAMOLE-38: Add unit test for query string parser. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/aabc871d Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/aabc871d Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/aabc871d Branch: refs/heads/master Commit: aabc871d7d05c4db1f4e3906e6a8c93b0fc9a30b Parents: 1011845 Author: Nick Couchman Authored: Thu Apr 19 08:55:24 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml | 8 .../auth/quickconnect/utility/QCParser.java | 2 +- .../auth/quickconnect/utility/QCParserTest.java | 49 3 files changed, 58 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aabc871d/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index e8d0440..b2fd922 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -193,6 +193,14 @@ provided + + +junit +junit +4.10 +test + + http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aabc871d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 4924619..c8e954a 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -167,7 +167,7 @@ public class QCParser { * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -private static Map parseQueryString(String queryStr) +public static Map parseQueryString(String queryStr) throws UnsupportedEncodingException { // Split the query string into the pairs http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aabc871d/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java new file mode 100644 index 000..5567ea3 --- /dev/null +++ b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java @@ -0,0 +1,49 @@ +/* + * 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.auth.quickconnect.utility; + +import java.io.UnsupportedEncodingException; +import java.util.HashMap; +import java.util.Map; +import org.junit.Test; +import static org.junit.Assert.assertEquals; + +/** + * Class to test methods in the QCParser utility class. + */ +public class QCParserTest { + +/** + * Verify that the parseQueryString() method functions as designed. + */ +@Test +public void testParseQueryString() throws UnsupportedEncodingException { + +final String queryString = "param1=value1¶m2=value2=3¶m3=value%3D3¶m4=value%264"; +Map queryMap = QCParser.parseQueryString(queryString); + +assertEquals("value1", queryMap.get("param1")); +assertEquals("value2=3"
[04/50] guacamole-client git commit: GUACAMOLE-38: Update to 0.9.14 and remove incubating references.
GUACAMOLE-38: Update to 0.9.14 and remove incubating references. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/039c5120 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/039c5120 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/039c5120 Branch: refs/heads/master Commit: 039c5120dfcba506141b6be0a34c154e8537ce2a Parents: fc63007 Author: Nick Couchman Authored: Mon Jan 1 16:53:31 2018 -0500 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml| 6 +++--- .../guacamole-auth-quickconnect/src/licenses/DISCLAIMER | 7 --- .../src/main/resources/guac-manifest.json | 2 +- 3 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/039c5120/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index fdf04c7..87ee7bd 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -26,9 +26,9 @@ org.apache.guacamole guacamole-auth-quickconnect jar -0.9.13-incubating +0.9.14 guacamole-auth-quickconnect -http://guacamole.incubator.apache.org/ +http://guacamole.apache.org/ UTF-8 @@ -181,7 +181,7 @@ org.apache.guacamole guacamole-ext -0.9.13-incubating +0.9.14 provided http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/039c5120/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER b/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER deleted file mode 100644 index 1a9c3be..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER +++ /dev/null @@ -1,7 +0,0 @@ -Apache Guacamole is an effort undergoing incubation at The Apache Software -Foundation (ASF). Incubation is required of all newly accepted projects until a -further review indicates that the infrastructure, communications, and decision -making process have stabilized in a manner consistent with other successful ASF -projects. While incubation status is not necessarily a reflection of the -completeness or stability of the code, it does indicate that the project has -yet to be fully endorsed by the ASF. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/039c5120/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json index 46fad88..62dd3bb 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json @@ -1,5 +1,5 @@ { -"guacamoleVersion" : "0.9.13-incubating", +"guacamoleVersion" : "0.9.14", "name" : "Adhoc Guacamole Connections", "namespace": "quickconnect",
[17/50] guacamole-client git commit: GUACAMOLE-38: Make class public for consistency with other classes.
GUACAMOLE-38: Make class public for consistency with other classes. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/da363f84 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/da363f84 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/da363f84 Branch: refs/heads/master Commit: da363f845e9d20be2d99c9b8355462570f0df7f9 Parents: 8ed356a Author: Nick Couchman Authored: Sat Mar 24 22:11:24 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectConnectionGroup.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/da363f84/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java index 4faab1c..2f37e08 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java @@ -35,7 +35,7 @@ import org.apache.guacamole.protocol.GuacamoleClientInformation; * for temporarily storing the QuickConnections created by * users. */ -class QuickConnectConnectionGroup extends AbstractConnectionGroup { +public class QuickConnectConnectionGroup extends AbstractConnectionGroup { /** * The connection identifiers for this group.
[28/50] guacamole-client git commit: GUACAMOLE-38: Break userInfo parsing into its own function, and properly decode username and password.
GUACAMOLE-38: Break userInfo parsing into its own function, and properly decode username and password. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/aafc4359 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/aafc4359 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/aafc4359 Branch: refs/heads/master Commit: aafc4359c812c1cf90b4c5d373c56cd4ceb2e5f6 Parents: 6dad254 Author: Nick Couchman Authored: Mon May 14 10:12:17 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 55 1 file changed, 46 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aafc4359/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 9601e1c..2c0b6dc 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -136,18 +136,18 @@ public class QCParser { // Look for the username and password and parse them out. if (userInfo != null && !userInfo.isEmpty()) { -Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); -if (userinfoMatcher.matches()) { -String username = userinfoMatcher.group(USERNAME_GROUP); -String password = userinfoMatcher.group(PASSWORD_GROUP); +try { +Map userInfoParams = parseUserInfo(userInfo); -if (username != null && !username.isEmpty()) -qcConfig.setParameter("username", username); +if (userInfoParams.containsKey("username")) +qcConfig.setParameter("username", userInfoParams.get("username")); -if (password != null && !password.isEmpty()) -qcConfig.setParameter("password", password); +if (userInfoParams.containsKey("password")) +qcConfig.setParameter("password", userInfoParams.get("password")); +} +catch (UnsupportedEncodingException e) { +throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); } - } return qcConfig; @@ -185,6 +185,43 @@ public class QCParser { } /** + * Parse the given string for username and password values, + * and return a map containing the username, password + * or both. + * + * @param userInfo + * The string to parse for username/password values. + * + * @return + * A map with the username, password, or both. + * + * @throws UnsupportedEncodingException + * If Java lacks UTF-8 support. + */ +public static Map parseUserInfo(String userInfo) +throws UnsupportedEncodingException { + +Map userInfoMap = new HashMap(); +Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); + +if (userinfoMatcher.matches()) { +String username = URLDecoder.decode( +userinfoMatcher.group(USERNAME_GROUP), "UTF-8"); +String password = URLDecoder.decode( +userinfoMatcher.group(PASSWORD_GROUP), "UTF-8"); + +if (username != null && !username.isEmpty()) +userInfoMap.put("username", username); + +if (password != null && !password.isEmpty()) +userInfoMap.put("password", password); +} + +return userInfoMap; + +} + +/** * Given a GuacamoleConfiguration object, generate a name * for the configuration based on the protocol, host, user * and port in the configuration, and return the string value.
[22/50] guacamole-client git commit: GUACAMOLE-38: Switch to regex for parsing username and password.
GUACAMOLE-38: Switch to regex for parsing username and password. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/16130b32 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/16130b32 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/16130b32 Branch: refs/heads/master Commit: 16130b32fef8a26a54af2d02015bf843a1b6266e Parents: 9ab50a2 Author: Nick Couchman Authored: Sun Mar 25 09:09:34 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 31 +++- 1 file changed, 24 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/16130b32/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 30121df..6bd0435 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -23,6 +23,8 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.apache.guacamole.GuacamoleClientException; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.protocol.GuacamoleConfiguration; @@ -45,6 +47,21 @@ public class QCParser { public static final String DEFAULT_URI_HOST = "localhost"; /** + * The regex to use to split username and password. + */ +private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):(.*)"); + +/** + * The regex group of the username. + */ +private static final int USERNAME_GROUP = 1; + +/** + * THe regex group of the password. + */ +private static final int PASSWORD_GROUP = 2; + +/** * Parse out a URI string and get a connection from that string, * or an exception if the parsing fails. * @@ -88,11 +105,11 @@ public class QCParser { paramList = Arrays.asList(query.split("&")); if (userInfo != null && !userInfo.equals("")) { -String[] authenticators = userInfo.split(":"); -if (authenticators.length > 0 && authenticators[0] != null) -username = authenticators[0]; -if (authenticators.length > 1 && authenticators[1] != null) -password = authenticators[1]; + +Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); +username = userinfoMatcher.group(USERNAME_GROUP); +password = userinfoMatcher.group(PASSWORD_GROUP); + } GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); @@ -102,10 +119,10 @@ public class QCParser { if (port > 0) qcConfig.setParameter("port", Integer.toString(port)); -if (username != null) +if (username != null && username.length() > 0) qcConfig.setParameter("username", username); -if (password != null) +if (password != null && password.length() > 0) qcConfig.setParameter("password", password); if (paramList != null) {
[36/50] guacamole-client git commit: GUACAMOLE-38: Rearrange logic in QCParser class.
GUACAMOLE-38: Rearrange logic in QCParser class. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/2a9c7fe0 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/2a9c7fe0 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/2a9c7fe0 Branch: refs/heads/master Commit: 2a9c7fe0b7dee1a409a96f32b6e155c63c62e917 Parents: 7df88cd Author: Nick Couchman Authored: Wed May 9 08:40:55 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 59 ++-- 1 file changed, 29 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/2a9c7fe0/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 1156ca5..9601e1c 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -85,6 +85,7 @@ public class QCParser { public static GuacamoleConfiguration getConfiguration(String uri) throws GuacamoleException { +// Parse the URI object from provided string. URI qcUri; try { qcUri = new URI(uri); @@ -100,22 +101,32 @@ public class QCParser { String userInfo = qcUri.getUserInfo(); String query = qcUri.getQuery(); -String username = null; -String password = null; -Map queryParams = null; +// Generate a new GuacamoleConfiguration +GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); + +// Check for provided protocol or use default +if (protocol != null && !protocol.isEmpty()) +qcConfig.setProtocol(protocol); +else +qcConfig.setProtocol(DEFAULT_URI_PROTOCOL); -// Assign default protocol if one is not found in the URI. -if (protocol == null || protocol.isEmpty()) -protocol = DEFAULT_URI_PROTOCOL; +// Check for provided port number +if (port > 0) +qcConfig.setParameter("port", Integer.toString(port)); -// Assign default host if one is not found in the URI. -if (host == null || host.isEmpty()) -host = DEFAULT_URI_HOST; +// Check for provided host or use default +if (host != null && !host.isEmpty()) +qcConfig.setParameter("hostname", host); +else +qcConfig.setParameter("hostname", DEFAULT_URI_HOST); // Look for extra query parameters and parse them out. if (query != null && !query.isEmpty()) { try { -queryParams = parseQueryString(query); +Map queryParams = parseQueryString(query); +if (queryParams != null) +for (Map.Entry entry: queryParams.entrySet()) +qcConfig.setParameter(entry.getKey(), entry.getValue()); } catch (UnsupportedEncodingException e) { throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); @@ -127,29 +138,17 @@ public class QCParser { Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); if (userinfoMatcher.matches()) { -username = userinfoMatcher.group(USERNAME_GROUP); -password = userinfoMatcher.group(PASSWORD_GROUP); -} - -} - -// Generate a new GuacamoleConfiguration and set parameters. -GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); -qcConfig.setProtocol(protocol); -qcConfig.setParameter("hostname",host); - -if (port > 0) -qcConfig.setParameter("port", Integer.toString(port)); +String username = userinfoMatcher.group(USERNAME_GROUP); +String password = userinfoMatcher.group(PASSWORD_GROUP); -if (username != null && !username.isEmpty()) -qcConfig.setParameter("username", username); +if (username != null && !username.isEmpty()) +qcConfig.setParameter("username", username); -if (password != null && !password.isEmpty()) -qcConfig.setParameter("password", password); +if (password != null && !password
[39/50] guacamole-client git commit: GUACAMOLE-38: Relocate the toolbar and restyle it.
GUACAMOLE-38: Relocate the toolbar and restyle it. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/f563925a Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/f563925a Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/f563925a Branch: refs/heads/master Commit: f563925aa7a6d7716f783497d845028227b94afa Parents: 56cc11e Author: Nick Couchman Authored: Thu May 10 12:02:37 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../src/main/resources/styles/quickconnect.css | 12 ++-- .../src/main/resources/templates/quickconnectField.html | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/f563925a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css index bc9209d..2f11262 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css @@ -19,9 +19,9 @@ .quickconnect-container { -margin: 0.75em 0; +margin: 0.25em 0; width: 100%; -margin-left: 0.75em; +margin-left: 0.50em; } .quickconnect-container .quickconnect-field { @@ -42,4 +42,12 @@ clear: both; float: right; margin-right: 0.75em; +font-size: 0.75em; +padding: 0.25em; +} + +.quickconnect-list-item { +vertical-align: middle; +align-content: center; +display: flex } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/f563925a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html index 30e8a90..6089965 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html @@ -1,5 +1,5 @@ - - + +
[22/50] guacamole-client git commit: GUACAMOLE-38: Make placeholder translatable.
GUACAMOLE-38: Make placeholder translatable. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/c50d3725 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/c50d3725 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/c50d3725 Branch: refs/heads/staging/1.0.0 Commit: c50d372517167d2ed9e9386fba0807c99622b777 Parents: da363f8 Author: Nick Couchman Authored: Sat Mar 24 22:18:01 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../src/main/resources/templates/quickconnectField.html | 2 +- .../src/main/resources/translations/en.json | 4 2 files changed, 5 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c50d3725/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html index d9b5a4d..114f59a 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html @@ -2,7 +2,7 @@ - + Connect http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c50d3725/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json index b080d4b..1f7bb3d 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json @@ -2,6 +2,10 @@ "DATA_SOURCE_QUICKCONNECT" : { "NAME" : "QuickConnect" +}, + +"QUICKCONNECT" : { +"FIELD_PLACEHOLDER_URI" : "Enter Connection URI" } }
[40/50] guacamole-client git commit: GUACAMOLE-38: Updated AngularJS components for compatibility with 1.6.x.
GUACAMOLE-38: Updated AngularJS components for compatibility with 1.6.x. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/201fbcd5 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/201fbcd5 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/201fbcd5 Branch: refs/heads/staging/1.0.0 Commit: 201fbcd5a5aeb0d6a98ddbc726f4aee775ae53f0 Parents: 6629451 Author: Nick Couchman Authored: Mon Apr 30 10:32:43 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../controllers/quickconnectController.js | 34 .../resources/services/quickConnectService.js | 11 --- 2 files changed, 14 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/201fbcd5/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js index 640034f..34c6780 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js @@ -20,28 +20,16 @@ /** * The controller for making ad-hoc (quick) connections */ -angular.module('guacQuickConnect').controller('quickconnectController', ['$scope', '$injector', '$log', -function manageConnectionController($scope, $injector, $log) { +angular.module('guacQuickConnect').controller('quickconnectController', ['$scope', '$injector', +function manageConnectionController($scope, $injector) { // Required types var ClientIdentifier= $injector.get('ClientIdentifier'); // Required services -var $location= $injector.get('$location'); -var guacNotification = $injector.get('guacNotification'); -var quickConnectService = $injector.get('quickConnectService'); - -/** - * An action to be provided along with the object sent to showStatus which - * closes the currently-shown status dialog. - */ -var ACKNOWLEDGE_ACTION = { -name: "MANAGE_CONNECTION.ACTION_ACKNOWLEDGE", -// Handle action -callback: function acknowledgeCallback() { -guacNotification.showStatus(false); -} -}; +var $location= $injector.get('$location'); +var guacNotification = $injector.get('guacNotification'); +var quickConnectService = $injector.get('quickConnectService'); /** * The URI that will be passed in to the extension to create @@ -56,21 +44,13 @@ angular.module('guacQuickConnect').controller('quickconnectController', ['$scope $scope.quickConnect = function quickConnect() { quickConnectService.createConnection($scope.uri) -.success(function createdConnection(connectionId) { +.then(function createdConnection(connectionId) { $location.url('/client/' + ClientIdentifier.toString({ dataSource : 'quickconnect', type : ClientIdentifier.Types.CONNECTION, id : connectionId })); -}) -.error(function createFailed(error) { -guacNotification.showStatus({ -'className' : 'error', -'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_ERROR', -'text' : error.translatableMessage, -'actions': [ ACKNOWLEDGE_ACTION ] -}); -}); +}, guacNotification.SHOW_REQUEST_ERROR); return; http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/201fbcd5/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js index 946e191..b5f9475 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js @@ -24,9 +24,9 @@ angular.module('guacQuickConnect').factory('quickConnectService', ['$injector', function quickConnectService($injector) { // Required services -var $http = $injector.get('$http'); var authenticationService = $injector.get('authen
[14/50] guacamole-client git commit: GUACAMOLE-38: Clean up lots of unnecessary code.
GUACAMOLE-38: Clean up lots of unnecessary code. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/0cbf90a5 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/0cbf90a5 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/0cbf90a5 Branch: refs/heads/staging/1.0.0 Commit: 0cbf90a55df8c14eb80391bb97c831f5bb910e71 Parents: c994c5a Author: Nick Couchman Authored: Tue Apr 17 22:10:25 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectConnectionGroup.java| 113 --- .../quickconnect/QuickConnectDirectory.java | 11 +- .../quickconnect/QuickConnectUserContext.java | 15 +-- .../auth/quickconnect/QuickConnection.java | 87 -- .../auth/quickconnect/QuickConnectionGroup.java | 113 +++ 5 files changed, 120 insertions(+), 219 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/0cbf90a5/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java deleted file mode 100644 index 2f37e08..000 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * 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.auth.quickconnect; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.GuacamoleSecurityException; -import org.apache.guacamole.net.GuacamoleTunnel; -import org.apache.guacamole.net.auth.AbstractConnectionGroup; -import org.apache.guacamole.net.auth.ConnectionGroup; -import org.apache.guacamole.protocol.GuacamoleClientInformation; - -/** - * Provides a very simple, single-level connection group used - * for temporarily storing the QuickConnections created by - * users. - */ -public class QuickConnectConnectionGroup extends AbstractConnectionGroup { - -/** - * The connection identifiers for this group. - */ -private Set connectionIdentifiers; - -/** - * Set up a QuickConnectConnectionGroup with a name and identifier, and - * an empty set of child connections. - * - * @param name - * The name of the QuickConnectConnectionGroup. - * - * @param identifier - * The identifier of the QuickConnectConnectionGroup. - */ -public QuickConnectConnectionGroup(String name, String identifier) { - -setName(name); -setIdentifier(identifier); -setType(ConnectionGroup.Type.ORGANIZATIONAL); - -this.connectionIdentifiers = new HashSet(Collections.emptyList()); - -} - -/** - * Add a connection identifier to this connection group, and - * return the identifier if the add succeeds, else return null. - * - * @param identifier - * The identifier of the connection to add to the group. - * - * @return - * The String identifier of the connection if the add - * operation was successful; otherwise null. - */ -public String addConnectionIdentifier(String identifier) { -if (connectionIdentifiers.add(identifier)) -return identifier; -return null; -} - -@Override -public int getActiveConnections() { -return 0; -} - -@Override -public Set getConnectionIdentifiers() { -return connectionIdentifiers; -} - -@Override -public Set getConnectionGroupIdentifiers() { -return Collections.emptySet(); -
[34/50] guacamole-client git commit: GUACAMOLE-38: Break query string parsing into its own method.
GUACAMOLE-38: Break query string parsing into its own method. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/10118450 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/10118450 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/10118450 Branch: refs/heads/master Commit: 10118450321fde8931f755362589ae532fc5cbed Parents: d9751f2 Author: Nick Couchman Authored: Thu Apr 19 07:20:51 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 62 ++-- 1 file changed, 45 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/10118450/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 650d561..4924619 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -25,7 +25,9 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URLDecoder; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.guacamole.GuacamoleClientException; @@ -104,7 +106,7 @@ public class QCParser { String query = qcUri.getQuery(); String username = null; String password = null; -List paramList = null; +Map queryParams = null; if (protocol == null || protocol.isEmpty()) protocol = DEFAULT_URI_PROTOCOL; @@ -112,8 +114,14 @@ public class QCParser { if (host == null || host.isEmpty()) host = DEFAULT_URI_HOST; -if (query != null && !query.isEmpty()) -paramList = Arrays.asList(query.split("&")); +if (query != null && !query.isEmpty()) { +try { +queryParams = parseQueryString(query); +} +catch (UnsupportedEncodingException e) { +throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); +} +} if (userInfo != null && !userInfo.isEmpty()) { @@ -138,25 +146,45 @@ public class QCParser { if (password != null && !password.isEmpty()) qcConfig.setParameter("password", password); -if (paramList != null) { -for (String parameter : paramList) { -String[] paramArray = parameter.split("=", 2); -try { -qcConfig.setParameter(URLDecoder.decode(paramArray[0], "UTF-8"), - URLDecoder.decode(paramArray[1], "UTF-8")); -} -catch (UnsupportedEncodingException e) { -logger.error("Unexpected lack of UTF-8 encoding support."); -throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); -} -} -} +if (queryParams != null) +for (Map.Entry entry : queryParams.entrySet()) +qcConfig.setParameter(entry.getKey(), entry.getValue()); return qcConfig; } /** + * Parse the given string for parameter key/value pairs and return + * a map with the parameters. + * + * @param queryStr + * The query string to parse for the values. + * + * @return + * A map with the key/value pairs. + * + * @throws UnsupportedEncodingException + * If Java lacks UTF-8 support. + */ +private static Map parseQueryString(String queryStr) +throws UnsupportedEncodingException { + +// Split the query string into the pairs +List paramList = Arrays.asList(queryStr.split("&")); +Map parameters = new HashMap(); + +// Split into key/value pairs and decode +for (String param : paramList) { +String[] paramArray = param.split("=", 2); +parameters.put(URLDecoder.decode(paramArray[0], "UTF-8"), + URLDecoder.decode(paramArray[1], "UTF-8")); +} + +return parameters; +} + +/** * Given a GuacamoleConfiguration object, generate a name * for the con
[27/50] guacamole-client git commit: GUACAMOLE-38: Updated AngularJS components for compatibility with 1.6.x.
GUACAMOLE-38: Updated AngularJS components for compatibility with 1.6.x. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/201fbcd5 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/201fbcd5 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/201fbcd5 Branch: refs/heads/master Commit: 201fbcd5a5aeb0d6a98ddbc726f4aee775ae53f0 Parents: 6629451 Author: Nick Couchman Authored: Mon Apr 30 10:32:43 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../controllers/quickconnectController.js | 34 .../resources/services/quickConnectService.js | 11 --- 2 files changed, 14 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/201fbcd5/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js index 640034f..34c6780 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js @@ -20,28 +20,16 @@ /** * The controller for making ad-hoc (quick) connections */ -angular.module('guacQuickConnect').controller('quickconnectController', ['$scope', '$injector', '$log', -function manageConnectionController($scope, $injector, $log) { +angular.module('guacQuickConnect').controller('quickconnectController', ['$scope', '$injector', +function manageConnectionController($scope, $injector) { // Required types var ClientIdentifier= $injector.get('ClientIdentifier'); // Required services -var $location= $injector.get('$location'); -var guacNotification = $injector.get('guacNotification'); -var quickConnectService = $injector.get('quickConnectService'); - -/** - * An action to be provided along with the object sent to showStatus which - * closes the currently-shown status dialog. - */ -var ACKNOWLEDGE_ACTION = { -name: "MANAGE_CONNECTION.ACTION_ACKNOWLEDGE", -// Handle action -callback: function acknowledgeCallback() { -guacNotification.showStatus(false); -} -}; +var $location= $injector.get('$location'); +var guacNotification = $injector.get('guacNotification'); +var quickConnectService = $injector.get('quickConnectService'); /** * The URI that will be passed in to the extension to create @@ -56,21 +44,13 @@ angular.module('guacQuickConnect').controller('quickconnectController', ['$scope $scope.quickConnect = function quickConnect() { quickConnectService.createConnection($scope.uri) -.success(function createdConnection(connectionId) { +.then(function createdConnection(connectionId) { $location.url('/client/' + ClientIdentifier.toString({ dataSource : 'quickconnect', type : ClientIdentifier.Types.CONNECTION, id : connectionId })); -}) -.error(function createFailed(error) { -guacNotification.showStatus({ -'className' : 'error', -'title' : 'MANAGE_CONNECTION.DIALOG_HEADER_ERROR', -'text' : error.translatableMessage, -'actions': [ ACKNOWLEDGE_ACTION ] -}); -}); +}, guacNotification.SHOW_REQUEST_ERROR); return; http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/201fbcd5/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js index 946e191..b5f9475 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js @@ -24,9 +24,9 @@ angular.module('guacQuickConnect').factory('quickConnectService', ['$injector', function quickConnectService($injector) { // Required services -var $http = $injector.get('$http'); var authenticationService = $injector.get('authenticatio
[39/50] guacamole-client git commit: GUACAMOLE-38: Use ConcurrentHashMap for threadsafety.
GUACAMOLE-38: Use ConcurrentHashMap for threadsafety. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/555b26ae Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/555b26ae Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/555b26ae Branch: refs/heads/staging/1.0.0 Commit: 555b26ae1fd1584485ab6b85c0a55a350e035350 Parents: 201fbcd Author: Nick Couchman Authored: Tue May 8 15:58:58 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectDirectory.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/555b26ae/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 30d8683..5070ea6 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -19,7 +19,7 @@ package org.apache.guacamole.auth.quickconnect; -import java.util.HashMap; +import java.util.concurrent.ConcurrentHashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import org.apache.guacamole.GuacamoleException; @@ -45,7 +45,7 @@ public class QuickConnectDirectory extends SimpleDirectory { * The connections to store. */ private final Map connections = -new HashMap(); +new ConcurrentHashMap(); /** * The root connection group for this directory.
[42/50] guacamole-client git commit: GUACAMOLE-38: Implement QuickConnectException for providing exceptions to the user.
GUACAMOLE-38: Implement QuickConnectException for providing exceptions to the user. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/73020135 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/73020135 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/73020135 Branch: refs/heads/master Commit: 730201358edb26ee27ab90f808fa72f146e0454b Parents: 8c13021 Author: Nick Couchman Authored: Mon May 21 10:54:14 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../quickconnect/QuickConnectException.java | 86 .../auth/quickconnect/utility/QCParser.java | 13 ++- .../src/main/resources/translations/en.json | 6 ++ 3 files changed, 101 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/73020135/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java new file mode 100644 index 000..6e4d5b9 --- /dev/null +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java @@ -0,0 +1,86 @@ +/* + * 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.auth.quickconnect; + +import org.apache.guacamole.GuacamoleClientException; +import org.apache.guacamole.language.Translatable; +import org.apache.guacamole.language.TranslatableMessage; + +/** + * An exception that is thrown by this extension when an error occurs + * attempting to create and establish a connection with a user-provided + * URI. + */ +public class QuickConnectException extends GuacamoleClientException +implements Translatable { + +/** + * A message that can be passed through the translation service + * to provide information about the error that occurred. + */ +private final TranslatableMessage translatableMessage; + +/** + * Create a QuickConnectException with the given message and translationKey. + * The message will not be passed through the translation system; the + * translationKey will be passed through the translation system. Both should + * describe the error. + * + * @param message + * A string describing the error that occurred when trying to create + * or establish the connection. This will not be passed through the + * translation system. + * + * @param translationKey + * A key known to the translation system describing the error that + * occurred when trying to create or establish the connection. + * This will be passed through the translation system to provide + * a localized version of the message. + */ +public QuickConnectException(String message, String translationKey) { +super(message); +this.translatableMessage = new TranslatableMessage(translationKey); +} + +/** + * Create a new QuickConnectException given the human-readable message, + * which will not be passed through the translation system, and the + * translatableMessage, which will be passed through the translation system. + * Both parameters should describe the error preventing the connection + * from being created or established. + * + * @param message + * The human-readable message describing the error, which will not + * be passed through the translation system. + * + * @param translatableMessage + * The human-readable message describing the error, which will be + * passed through the translation system. + */ +public QuickConnectException(Stri
[50/50] guacamole-client git commit: GUACAMOLE-38: Merge support for dynamically defining connections using URLs.
GUACAMOLE-38: Merge support for dynamically defining connections using URLs. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/72bc8c01 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/72bc8c01 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/72bc8c01 Branch: refs/heads/staging/1.0.0 Commit: 72bc8c01a385fa04059b43e166d4a72ac4b6d8bb Parents: 2fb377a 1438a51 Author: Michael Jumper Authored: Sun Jun 3 12:04:00 2018 -0700 Committer: Michael Jumper Committed: Sun Jun 3 12:04:00 2018 -0700 -- extensions/guacamole-auth-quickconnect/pom.xml | 206 +++ .../src/licenses/LICENSE| 202 +++ .../src/licenses/NOTICE | 5 + .../src/main/assembly/dist.xml | 53 .../QuickConnectAuthenticationProvider.java | 48 .../quickconnect/QuickConnectDirectory.java | 122 + .../quickconnect/QuickConnectException.java | 86 +++ .../quickconnect/QuickConnectUserContext.java | 131 ++ .../auth/quickconnect/QuickConnectionGroup.java | 117 + .../quickconnect/rest/QuickConnectREST.java | 82 ++ .../auth/quickconnect/utility/QCParser.java | 256 +++ .../controllers/quickconnectController.js | 59 + .../src/main/resources/guac-manifest.json | 31 +++ .../src/main/resources/quickconnectModule.js| 28 ++ .../resources/services/quickConnectService.js | 69 + .../src/main/resources/styles/quickconnect.css | 53 .../resources/templates/quickconnectField.html | 11 + .../src/main/resources/translations/en.json | 18 ++ .../auth/quickconnect/utility/QCParserTest.java | 122 + pom.xml | 1 + 20 files changed, 1700 insertions(+) --
[27/50] guacamole-client git commit: GUACAMOLE-38: Tweak style and translation issues.
GUACAMOLE-38: Tweak style and translation issues. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/56cc11e1 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/56cc11e1 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/56cc11e1 Branch: refs/heads/staging/1.0.0 Commit: 56cc11e1b991a9885454d8954c61eb254e99496a Parents: 2a9c7fe Author: Nick Couchman Authored: Wed May 9 09:54:45 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../src/main/resources/styles/quickconnect.css | 11 ++- .../src/main/resources/templates/quickconnectField.html | 4 +++- .../src/main/resources/translations/en.json | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/56cc11e1/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css index ee0c2f5..bc9209d 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css @@ -19,26 +19,27 @@ .quickconnect-container { -margin: 0.5em 0; +margin: 0.75em 0; width: 100%; +margin-left: 0.75em; } .quickconnect-container .quickconnect-field { background-image: url('images/protocol-icons/guac-text.png'); background-repeat: no-repeat; -background-size: 1.75em; +background-size: 1.50em; background-position: 0.25em center; background-color: transparent; -padding: 0.5em; -padding-left: 2.25em; +padding: 0.25em; +padding-left: 2.50em; width: 100%; max-width: none; border: 0; -border-left: 1px solid rgba(0,0,0,0.125); box-sizing: border-box; } .quickconnect-button { clear: both; float: right; +margin-right: 0.75em; } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/56cc11e1/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html index 114f59a..30e8a90 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html @@ -5,5 +5,7 @@ -Connect + +{{'QUICKCONNECT.ACTION_CONNECT' | translate}} + http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/56cc11e1/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json index 1f7bb3d..2c2dc8e 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json @@ -5,6 +5,7 @@ }, "QUICKCONNECT" : { +"ACTION_CONNECT": "Connect", "FIELD_PLACEHOLDER_URI" : "Enter Connection URI" }
[26/50] guacamole-client git commit: GUACAMOLE-38: Rearrange logic in QCParser class.
GUACAMOLE-38: Rearrange logic in QCParser class. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/2a9c7fe0 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/2a9c7fe0 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/2a9c7fe0 Branch: refs/heads/staging/1.0.0 Commit: 2a9c7fe0b7dee1a409a96f32b6e155c63c62e917 Parents: 7df88cd Author: Nick Couchman Authored: Wed May 9 08:40:55 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 59 ++-- 1 file changed, 29 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/2a9c7fe0/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 1156ca5..9601e1c 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -85,6 +85,7 @@ public class QCParser { public static GuacamoleConfiguration getConfiguration(String uri) throws GuacamoleException { +// Parse the URI object from provided string. URI qcUri; try { qcUri = new URI(uri); @@ -100,22 +101,32 @@ public class QCParser { String userInfo = qcUri.getUserInfo(); String query = qcUri.getQuery(); -String username = null; -String password = null; -Map queryParams = null; +// Generate a new GuacamoleConfiguration +GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); + +// Check for provided protocol or use default +if (protocol != null && !protocol.isEmpty()) +qcConfig.setProtocol(protocol); +else +qcConfig.setProtocol(DEFAULT_URI_PROTOCOL); -// Assign default protocol if one is not found in the URI. -if (protocol == null || protocol.isEmpty()) -protocol = DEFAULT_URI_PROTOCOL; +// Check for provided port number +if (port > 0) +qcConfig.setParameter("port", Integer.toString(port)); -// Assign default host if one is not found in the URI. -if (host == null || host.isEmpty()) -host = DEFAULT_URI_HOST; +// Check for provided host or use default +if (host != null && !host.isEmpty()) +qcConfig.setParameter("hostname", host); +else +qcConfig.setParameter("hostname", DEFAULT_URI_HOST); // Look for extra query parameters and parse them out. if (query != null && !query.isEmpty()) { try { -queryParams = parseQueryString(query); +Map queryParams = parseQueryString(query); +if (queryParams != null) +for (Map.Entry entry: queryParams.entrySet()) +qcConfig.setParameter(entry.getKey(), entry.getValue()); } catch (UnsupportedEncodingException e) { throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); @@ -127,29 +138,17 @@ public class QCParser { Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); if (userinfoMatcher.matches()) { -username = userinfoMatcher.group(USERNAME_GROUP); -password = userinfoMatcher.group(PASSWORD_GROUP); -} - -} - -// Generate a new GuacamoleConfiguration and set parameters. -GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); -qcConfig.setProtocol(protocol); -qcConfig.setParameter("hostname",host); - -if (port > 0) -qcConfig.setParameter("port", Integer.toString(port)); +String username = userinfoMatcher.group(USERNAME_GROUP); +String password = userinfoMatcher.group(PASSWORD_GROUP); -if (username != null && !username.isEmpty()) -qcConfig.setParameter("username", username); +if (username != null && !username.isEmpty()) +qcConfig.setParameter("username", username); -if (password != null && !password.isEmpty()) -qcConfig.setParameter("password", password); +if (password != null && !p
[48/50] guacamole-client git commit: GUACAMOLE-38: Methods being tested need to be public.
GUACAMOLE-38: Methods being tested need to be public. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/1438a511 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/1438a511 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/1438a511 Branch: refs/heads/staging/1.0.0 Commit: 1438a5117b40b359e629f22aa04338560c3e4da7 Parents: 97d2d3a Author: Nick Couchman Authored: Wed May 30 11:31:41 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../org/apache/guacamole/auth/quickconnect/utility/QCParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/1438a511/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 2924c0d..3e2e5e5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -155,7 +155,7 @@ public class QCParser { * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -private static Map parseQueryString(String queryStr) +public static Map parseQueryString(String queryStr) throws UnsupportedEncodingException { // Split the query string into the pairs @@ -187,7 +187,7 @@ public class QCParser { * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -private static void parseUserInfo(String userInfo, +public static void parseUserInfo(String userInfo, GuacamoleConfiguration config) throws UnsupportedEncodingException {
[31/50] guacamole-client git commit: GUACAMOLE-38: Fix use of superclass methods.
GUACAMOLE-38: Fix use of superclass methods. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6dad254c Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6dad254c Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6dad254c Branch: refs/heads/staging/1.0.0 Commit: 6dad254c14dcd8ee1e4781c09089668f9ddba0a3 Parents: f563925 Author: Nick Couchman Authored: Sat May 12 07:44:09 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectionGroup.java | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6dad254c/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java index 8419cf0..b087c35 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java @@ -54,9 +54,10 @@ public class QuickConnectionGroup extends AbstractConnectionGroup { */ public QuickConnectionGroup(String name, String identifier) { -setName(name); -setIdentifier(identifier); -setType(ConnectionGroup.Type.ORGANIZATIONAL); +super(); +super.setName(name); +super.setIdentifier(identifier); +super.setType(ConnectionGroup.Type.ORGANIZATIONAL); }
[44/50] guacamole-client git commit: GUACAMOLE-38: Add unit tests for the userInfo parser and the getConfiguration method.
GUACAMOLE-38: Add unit tests for the userInfo parser and the getConfiguration method. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/27f4ad01 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/27f4ad01 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/27f4ad01 Branch: refs/heads/master Commit: 27f4ad01f5525b695ed9fbc651f04e8205b8d8b6 Parents: aafc435 Author: Nick Couchman Authored: Mon May 14 10:46:49 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/utility/QCParserTest.java | 62 1 file changed, 62 insertions(+) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/27f4ad01/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java index 5567ea3..8a4ed1b 100644 --- a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java +++ b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java @@ -22,8 +22,11 @@ package org.apache.guacamole.auth.quickconnect.utility; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; +import org.apache.guacamole.GuacamoleException; +import org.apache.guacamole.protocol.GuacamoleConfiguration; import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; /** * Class to test methods in the QCParser utility class. @@ -46,4 +49,63 @@ public class QCParserTest { } +/** + * Verify that the parseUserInfo() method functions as designed. + */ +@Test +public void testParseUserInfo() throws UnsupportedEncodingException { + +Map userInfoMap; + +userInfoMap = QCParser.parseUserInfo("guacuser:secretpw"); +assertEquals("guacuser", userInfoMap.get("username")); +assertEquals("secretpw", userInfoMap.get("password")); + + +userInfoMap = QCParser.parseUserInfo("guacuser"); +assertEquals("guacuser", userInfoMap.get("username")); +assertFalse(userInfoMap.containsKey("password")); + +userInfoMap = QCParser.parseUserInfo("guacuser:P%40ssw0rd%21"); +assertEquals("guacuser", userInfoMap.get("username")); +assertEquals("P@ssw0rd!", userInfoMap.get("password")); + +userInfoMap = QCParser.parseUserInfo("domain%5cguacuser:domain%2fpassword"); +assertEquals("domain\\guacuser", userInfoMap.get("username")); +assertEquals("domain/password", userInfoMap.get("password")); + +} + +/** + * Verify that the getConfiguration() method returns the expected + * GuacamoleConfiguration object. + */ +@Test +public void testGetConfiguration() throws GuacamoleException { + +String uri1 = "ssh://guacuser:guacpassword@hostname1.domain.local/?param1=value1¶m2=value2"; +GuacamoleConfiguration config1 = QCParser.getConfiguration(uri1); +assertEquals("ssh", config1.getProtocol()); +assertEquals("hostname1.domain.local", config1.getParameter("hostname")); +assertEquals("guacuser", config1.getParameter("username")); +assertEquals("guacpassword", config1.getParameter("password")); +assertEquals("value1", config1.getParameter("param1")); +assertEquals("value2", config1.getParameter("param2")); + +String uri2 = "rdp://domain%5cguacuser:adpassword...@windows1.domain.tld/?enable-sftp=true"; +GuacamoleConfiguration config2 = QCParser.getConfiguration(uri2); +assertEquals("rdp", config2.getProtocol()); +assertEquals("windows1.domain.tld", config2.getParameter("hostname")); +assertEquals("domain\\guacuser", config2.getParameter("username")); +assertEquals("adPassword123", config2.getParameter("password")); +assertEquals("true", config2.getParameter("enable-sftp")); + +String uri3 = "vnc://mirror1.example.com:5910/"; +GuacamoleConfiguration config3 = QCParser.getConfiguration(uri3); +assertEquals("vnc", config3.getProtocol()); +assertEquals("mirror1.example.com", config3.getParameter("hostname")); +assertEquals("5910", config3.getParameter("port")); + +} + }
[12/50] guacamole-client git commit: GUACAMOLE-38: Fix parameter name in QuickConnection constructor.
GUACAMOLE-38: Fix parameter name in QuickConnection constructor. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/12d92d21 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/12d92d21 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/12d92d21 Branch: refs/heads/staging/1.0.0 Commit: 12d92d210fb857696e890b8036baebd07ce85090 Parents: bb127c5 Author: Nick Couchman Authored: Sun Apr 15 23:07:57 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnection.java| 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/12d92d21/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java index 3735849..f3be14e 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java @@ -70,14 +70,16 @@ public class QuickConnection extends SimpleConnection { * object, copying over the relevant data and initializing * the rest. * - * @param object - * The generic Connection object to be copied. + * @param connection + * The generic Connection to be copied. */ -public QuickConnection(Connection object) { +public QuickConnection(Connection connection) { - super(object.getName(),object.getIdentifier(),object.getConfiguration()); +super(connection.getName(),connection.getIdentifier(), +connection.getConfiguration()); + +setParentIdentifier(connection.getParentIdentifier()); -setParentIdentifier(object.getParentIdentifier()); this.activeConnections = 0; }
[19/50] guacamole-client git commit: GUACAMOLE-38: Quick fix-up for userContext object in AuthenticationProvider
GUACAMOLE-38: Quick fix-up for userContext object in AuthenticationProvider Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/bb127c55 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/bb127c55 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/bb127c55 Branch: refs/heads/master Commit: bb127c55d2226651622c9bb2b6e1b6fb623bec46 Parents: d608643 Author: Nick Couchman Authored: Sun Apr 15 22:58:19 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../auth/quickconnect/QuickConnectAuthenticationProvider.java | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb127c55/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 66c42e7..5223793 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -45,7 +45,11 @@ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationPr public UserContext getUserContext(AuthenticatedUser authenticatedUser) throws GuacamoleException { -return new QuickConnectUserContext(this, authenticatedUser.getIdentifier()); +if (userContext == null) +userContext = new QuickConnectUserContext(this, +authenticatedUser.getIdentifier()); + +return userContext; }
[23/50] guacamole-client git commit: GUACAMOLE-38: Remove lots of extra imports.
GUACAMOLE-38: Remove lots of extra imports. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/d608643b Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/d608643b Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/d608643b Branch: refs/heads/master Commit: d608643bb6c890d91edfac5fb70838c264180dde Parents: 3feb2c2 Author: Nick Couchman Authored: Sun Apr 15 22:44:46 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectAuthenticationProvider.java| 6 -- .../auth/quickconnect/QuickConnectUserContext.java | 10 -- .../auth/quickconnect/QuickConnection.java | 17 - .../auth/quickconnect/rest/QuickConnectREST.java | 9 - 4 files changed, 42 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d608643b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 6e6f2bc..66c42e7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -19,16 +19,10 @@ package org.apache.guacamole.auth.quickconnect; -import java.util.Collections; -import java.util.Map; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AuthenticatedUser; import org.apache.guacamole.net.auth.AbstractAuthenticationProvider; -import org.apache.guacamole.net.auth.Credentials; -import org.apache.guacamole.net.auth.credentials.CredentialsInfo; -import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException; import org.apache.guacamole.net.auth.UserContext; -import org.apache.guacamole.protocol.GuacamoleConfiguration; /** * Class providing the necessary hooks into the Guacamole Client authentication http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d608643b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 60f6ded..60a05e5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -19,24 +19,14 @@ package org.apache.guacamole.auth.quickconnect; -import java.util.Collection; import java.util.Collections; import org.apache.guacamole.auth.quickconnect.rest.QuickConnectREST; import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.form.Form; import org.apache.guacamole.net.auth.AbstractUserContext; -import org.apache.guacamole.net.auth.ActiveConnection; -import org.apache.guacamole.net.auth.ActivityRecord; -import org.apache.guacamole.net.auth.ActivityRecordSet; import org.apache.guacamole.net.auth.AuthenticationProvider; -import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.net.auth.ConnectionGroup; -import org.apache.guacamole.net.auth.ConnectionRecord; import org.apache.guacamole.net.auth.Directory; -import org.apache.guacamole.net.auth.SharingProfile; import org.apache.guacamole.net.auth.User; -import org.apache.guacamole.net.auth.UserContext; -import org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet; import org.apache.guacamole.net.auth.simple.SimpleDirectory; import org.apache.guacamole.net.auth.simple.SimpleUser; http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d608643b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/
[16/50] guacamole-client git commit: GUACAMOLE-38: Fix parameter name in QuickConnection constructor.
GUACAMOLE-38: Fix parameter name in QuickConnection constructor. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/12d92d21 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/12d92d21 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/12d92d21 Branch: refs/heads/master Commit: 12d92d210fb857696e890b8036baebd07ce85090 Parents: bb127c5 Author: Nick Couchman Authored: Sun Apr 15 23:07:57 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnection.java| 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/12d92d21/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java index 3735849..f3be14e 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java @@ -70,14 +70,16 @@ public class QuickConnection extends SimpleConnection { * object, copying over the relevant data and initializing * the rest. * - * @param object - * The generic Connection object to be copied. + * @param connection + * The generic Connection to be copied. */ -public QuickConnection(Connection object) { +public QuickConnection(Connection connection) { - super(object.getName(),object.getIdentifier(),object.getConfiguration()); +super(connection.getName(),connection.getIdentifier(), +connection.getConfiguration()); + +setParentIdentifier(connection.getParentIdentifier()); -setParentIdentifier(object.getParentIdentifier()); this.activeConnections = 0; }
[25/50] guacamole-client git commit: GUACAMOLE-38: Tweak style and translation issues.
GUACAMOLE-38: Tweak style and translation issues. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/56cc11e1 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/56cc11e1 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/56cc11e1 Branch: refs/heads/master Commit: 56cc11e1b991a9885454d8954c61eb254e99496a Parents: 2a9c7fe Author: Nick Couchman Authored: Wed May 9 09:54:45 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../src/main/resources/styles/quickconnect.css | 11 ++- .../src/main/resources/templates/quickconnectField.html | 4 +++- .../src/main/resources/translations/en.json | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/56cc11e1/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css index ee0c2f5..bc9209d 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css @@ -19,26 +19,27 @@ .quickconnect-container { -margin: 0.5em 0; +margin: 0.75em 0; width: 100%; +margin-left: 0.75em; } .quickconnect-container .quickconnect-field { background-image: url('images/protocol-icons/guac-text.png'); background-repeat: no-repeat; -background-size: 1.75em; +background-size: 1.50em; background-position: 0.25em center; background-color: transparent; -padding: 0.5em; -padding-left: 2.25em; +padding: 0.25em; +padding-left: 2.50em; width: 100%; max-width: none; border: 0; -border-left: 1px solid rgba(0,0,0,0.125); box-sizing: border-box; } .quickconnect-button { clear: both; float: right; +margin-right: 0.75em; } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/56cc11e1/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html index 114f59a..30e8a90 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html @@ -5,5 +5,7 @@ -Connect + +{{'QUICKCONNECT.ACTION_CONNECT' | translate}} + http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/56cc11e1/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json index 1f7bb3d..2c2dc8e 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/translations/en.json @@ -5,6 +5,7 @@ }, "QUICKCONNECT" : { +"ACTION_CONNECT": "Connect", "FIELD_PLACEHOLDER_URI" : "Enter Connection URI" }
[49/50] guacamole-client git commit: GUACAMOLE-38: Merge support for dynamically defining connections using URLs.
GUACAMOLE-38: Merge support for dynamically defining connections using URLs. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/72bc8c01 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/72bc8c01 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/72bc8c01 Branch: refs/heads/master Commit: 72bc8c01a385fa04059b43e166d4a72ac4b6d8bb Parents: 2fb377a 1438a51 Author: Michael Jumper Authored: Sun Jun 3 12:04:00 2018 -0700 Committer: Michael Jumper Committed: Sun Jun 3 12:04:00 2018 -0700 -- extensions/guacamole-auth-quickconnect/pom.xml | 206 +++ .../src/licenses/LICENSE| 202 +++ .../src/licenses/NOTICE | 5 + .../src/main/assembly/dist.xml | 53 .../QuickConnectAuthenticationProvider.java | 48 .../quickconnect/QuickConnectDirectory.java | 122 + .../quickconnect/QuickConnectException.java | 86 +++ .../quickconnect/QuickConnectUserContext.java | 131 ++ .../auth/quickconnect/QuickConnectionGroup.java | 117 + .../quickconnect/rest/QuickConnectREST.java | 82 ++ .../auth/quickconnect/utility/QCParser.java | 256 +++ .../controllers/quickconnectController.js | 59 + .../src/main/resources/guac-manifest.json | 31 +++ .../src/main/resources/quickconnectModule.js| 28 ++ .../resources/services/quickConnectService.js | 69 + .../src/main/resources/styles/quickconnect.css | 53 .../resources/templates/quickconnectField.html | 11 + .../src/main/resources/translations/en.json | 18 ++ .../auth/quickconnect/utility/QCParserTest.java | 122 + pom.xml | 1 + 20 files changed, 1700 insertions(+) --
[06/50] guacamole-client git commit: GUACAMOLE-38: Brush up comments and removed some extra code.
GUACAMOLE-38: Brush up comments and removed some extra code. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6c71f4dd Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6c71f4dd Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6c71f4dd Branch: refs/heads/master Commit: 6c71f4ddb3b7863864f1081b178acccbb7e9fe0d Parents: 8fa0cea Author: Nick Couchman Authored: Sat Mar 24 20:37:19 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml | 7 --- .../quickconnect/QuickConnectAuthenticationProvider.java | 4 .../guacamole/auth/quickconnect/utility/QCParser.java| 11 --- 3 files changed, 12 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c71f4dd/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index 87ee7bd..717f42c 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -187,9 +187,10 @@ -com.sun.jersey -jersey-server -1.17.1 +javax.ws.rs +jsr311-api +1.1.1 +provided http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c71f4dd/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index f725bdf..c809709 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -63,10 +63,6 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv public AuthenticatedUser authenticateUser(Credentials credentials) throws GuacamoleException { -String username = credentials.getUsername(); -if (username == null || username.isEmpty()) -throw new GuacamoleInvalidCredentialsException("You must login.", CredentialsInfo.USERNAME_PASSWORD); - return null; } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c71f4dd/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 05b892f..3de9e80 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -27,10 +27,15 @@ import org.apache.guacamole.GuacamoleClientException; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.protocol.GuacamoleConfiguration; +/** + * A utility class to parse out a URI into the settings necessary + * to create and establish a Guacamole connection. + */ public class QCParser { /** - * The default protocol to parse to if one is undefined. + * The default protocol to parse to if one is provided in + * the incoming URI.. */ public static final String DEFAULT_URI_PROTOCOL = "ssh"; @@ -71,7 +76,7 @@ public class QCParser { } String protocol = qcUri.getScheme(); String host = qcUri.getHost(); -Integer port = qcUri.getPort(); +int port = qcUri.getPort(); String userInfo = qcUri.getUserInfo(); String query = qcUri.getQuery(); String username = null; @@ -101,7 +106,7 @@ public class QCParser { GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); qcConfig.setProtocol(protocol); qcConfig.setParameter("hostname",host); -qcConfig.setParameter("port", port.toString()); +qcConfig.setParameter("port", Integer.t
[30/50] guacamole-client git commit: GUACAMOLE-38: Break userInfo parsing into its own function, and properly decode username and password.
GUACAMOLE-38: Break userInfo parsing into its own function, and properly decode username and password. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/aafc4359 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/aafc4359 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/aafc4359 Branch: refs/heads/staging/1.0.0 Commit: aafc4359c812c1cf90b4c5d373c56cd4ceb2e5f6 Parents: 6dad254 Author: Nick Couchman Authored: Mon May 14 10:12:17 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 55 1 file changed, 46 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aafc4359/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 9601e1c..2c0b6dc 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -136,18 +136,18 @@ public class QCParser { // Look for the username and password and parse them out. if (userInfo != null && !userInfo.isEmpty()) { -Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); -if (userinfoMatcher.matches()) { -String username = userinfoMatcher.group(USERNAME_GROUP); -String password = userinfoMatcher.group(PASSWORD_GROUP); +try { +Map userInfoParams = parseUserInfo(userInfo); -if (username != null && !username.isEmpty()) -qcConfig.setParameter("username", username); +if (userInfoParams.containsKey("username")) +qcConfig.setParameter("username", userInfoParams.get("username")); -if (password != null && !password.isEmpty()) -qcConfig.setParameter("password", password); +if (userInfoParams.containsKey("password")) +qcConfig.setParameter("password", userInfoParams.get("password")); +} +catch (UnsupportedEncodingException e) { +throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); } - } return qcConfig; @@ -185,6 +185,43 @@ public class QCParser { } /** + * Parse the given string for username and password values, + * and return a map containing the username, password + * or both. + * + * @param userInfo + * The string to parse for username/password values. + * + * @return + * A map with the username, password, or both. + * + * @throws UnsupportedEncodingException + * If Java lacks UTF-8 support. + */ +public static Map parseUserInfo(String userInfo) +throws UnsupportedEncodingException { + +Map userInfoMap = new HashMap(); +Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); + +if (userinfoMatcher.matches()) { +String username = URLDecoder.decode( +userinfoMatcher.group(USERNAME_GROUP), "UTF-8"); +String password = URLDecoder.decode( +userinfoMatcher.group(PASSWORD_GROUP), "UTF-8"); + +if (username != null && !username.isEmpty()) +userInfoMap.put("username", username); + +if (password != null && !password.isEmpty()) +userInfoMap.put("password", password); +} + +return userInfoMap; + +} + +/** * Given a GuacamoleConfiguration object, generate a name * for the configuration based on the protocol, host, user * and port in the configuration, and return the string value.
[36/50] guacamole-client git commit: GUACAMOLE-38: Break query string parsing into its own method.
GUACAMOLE-38: Break query string parsing into its own method. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/10118450 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/10118450 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/10118450 Branch: refs/heads/staging/1.0.0 Commit: 10118450321fde8931f755362589ae532fc5cbed Parents: d9751f2 Author: Nick Couchman Authored: Thu Apr 19 07:20:51 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 62 ++-- 1 file changed, 45 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/10118450/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 650d561..4924619 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -25,7 +25,9 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URLDecoder; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.guacamole.GuacamoleClientException; @@ -104,7 +106,7 @@ public class QCParser { String query = qcUri.getQuery(); String username = null; String password = null; -List paramList = null; +Map queryParams = null; if (protocol == null || protocol.isEmpty()) protocol = DEFAULT_URI_PROTOCOL; @@ -112,8 +114,14 @@ public class QCParser { if (host == null || host.isEmpty()) host = DEFAULT_URI_HOST; -if (query != null && !query.isEmpty()) -paramList = Arrays.asList(query.split("&")); +if (query != null && !query.isEmpty()) { +try { +queryParams = parseQueryString(query); +} +catch (UnsupportedEncodingException e) { +throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); +} +} if (userInfo != null && !userInfo.isEmpty()) { @@ -138,25 +146,45 @@ public class QCParser { if (password != null && !password.isEmpty()) qcConfig.setParameter("password", password); -if (paramList != null) { -for (String parameter : paramList) { -String[] paramArray = parameter.split("=", 2); -try { -qcConfig.setParameter(URLDecoder.decode(paramArray[0], "UTF-8"), - URLDecoder.decode(paramArray[1], "UTF-8")); -} -catch (UnsupportedEncodingException e) { -logger.error("Unexpected lack of UTF-8 encoding support."); -throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); -} -} -} +if (queryParams != null) +for (Map.Entry entry : queryParams.entrySet()) +qcConfig.setParameter(entry.getKey(), entry.getValue()); return qcConfig; } /** + * Parse the given string for parameter key/value pairs and return + * a map with the parameters. + * + * @param queryStr + * The query string to parse for the values. + * + * @return + * A map with the key/value pairs. + * + * @throws UnsupportedEncodingException + * If Java lacks UTF-8 support. + */ +private static Map parseQueryString(String queryStr) +throws UnsupportedEncodingException { + +// Split the query string into the pairs +List paramList = Arrays.asList(queryStr.split("&")); +Map parameters = new HashMap(); + +// Split into key/value pairs and decode +for (String param : paramList) { +String[] paramArray = param.split("=", 2); +parameters.put(URLDecoder.decode(paramArray[0], "UTF-8"), + URLDecoder.decode(paramArray[1], "UTF-8")); +} + +return parameters; +} + +/** * Given a GuacamoleConfiguration object, generate a name * for
[16/50] guacamole-client git commit: GUACAMOLE-38: Fix up string checks in QCParser class.
GUACAMOLE-38: Fix up string checks in QCParser class. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/cf241f04 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/cf241f04 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/cf241f04 Branch: refs/heads/staging/1.0.0 Commit: cf241f041e34e64515fe185314af5ade5b716309 Parents: 0cbf90a Author: Nick Couchman Authored: Tue Apr 17 22:29:46 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 22 ++-- 1 file changed, 11 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/cf241f04/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index be157dc..ba6e3fd 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -95,16 +95,16 @@ public class QCParser { String password = null; List paramList = null; -if (protocol == null || protocol.equals("")) +if (protocol == null || protocol.isEmpty()) protocol = DEFAULT_URI_PROTOCOL; -if (host == null || host.equals("")) +if (host == null || host.isEmpty()) host = DEFAULT_URI_HOST; -if (query != null && !query.equals("")) +if (query != null && !query.isEmpty()) paramList = Arrays.asList(query.split("&")); -if (userInfo != null && !userInfo.equals("")) { +if (userInfo != null && !userInfo.isEmpty()) { Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); if (userinfoMatcher.matches()) { @@ -121,15 +121,15 @@ public class QCParser { if (port > 0) qcConfig.setParameter("port", Integer.toString(port)); -if (username != null && username.length() > 0) +if (username != null && !username.isEmpty()) qcConfig.setParameter("username", username); -if (password != null && password.length() > 0) +if (password != null && !password.isEmpty()) qcConfig.setParameter("password", password); if (paramList != null) { for (String parameter : paramList) { -String[] paramArray = parameter.split("="); +String[] paramArray = parameter.split("=", 2); qcConfig.setParameter(paramArray[0],paramArray[1]); } } @@ -166,16 +166,16 @@ public class QCParser { String name = ""; -if (protocol != null && !protocol.equals("")) +if (protocol != null && !protocol.isEmpty()) name += protocol + "://"; -if (user != null && !user.equals("")) +if (user != null && !user.isEmpty()) name += user + "@"; -if (host != null && !host.equals("")) +if (host != null && !host.isEmpty()) name += host; -if (port != null && !port.equals("")) +if (port != null && !port.isEmpty()) name += ":" + port; name += "/";
[32/50] guacamole-client git commit: GUACAMOLE-38: Relocate the toolbar and restyle it.
GUACAMOLE-38: Relocate the toolbar and restyle it. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/f563925a Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/f563925a Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/f563925a Branch: refs/heads/staging/1.0.0 Commit: f563925aa7a6d7716f783497d845028227b94afa Parents: 56cc11e Author: Nick Couchman Authored: Thu May 10 12:02:37 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../src/main/resources/styles/quickconnect.css | 12 ++-- .../src/main/resources/templates/quickconnectField.html | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/f563925a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css index bc9209d..2f11262 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css @@ -19,9 +19,9 @@ .quickconnect-container { -margin: 0.75em 0; +margin: 0.25em 0; width: 100%; -margin-left: 0.75em; +margin-left: 0.50em; } .quickconnect-container .quickconnect-field { @@ -42,4 +42,12 @@ clear: both; float: right; margin-right: 0.75em; +font-size: 0.75em; +padding: 0.25em; +} + +.quickconnect-list-item { +vertical-align: middle; +align-content: center; +display: flex } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/f563925a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html index 30e8a90..6089965 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/templates/quickconnectField.html @@ -1,5 +1,5 @@ - - + +
[44/50] guacamole-client git commit: GUACAMOLE-38: Clean up minor code issues.
GUACAMOLE-38: Clean up minor code issues. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/aaada49d Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/aaada49d Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/aaada49d Branch: refs/heads/staging/1.0.0 Commit: aaada49dfefdb7aab794ebc6054976686fc57970 Parents: 27f4ad0 Author: Nick Couchman Authored: Mon May 14 14:00:50 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java | 2 +- .../auth/quickconnect/QuickConnectUserContext.java| 2 -- .../guacamole/auth/quickconnect/QuickConnectionGroup.java | 2 +- .../auth/quickconnect/rest/QuickConnectREST.java | 2 +- .../guacamole/auth/quickconnect/utility/QCParserTest.java | 10 +- 5 files changed, 12 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index ceb8c80..8841944 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -50,7 +50,7 @@ public class QuickConnectDirectory extends SimpleDirectory { /** * The internal counter for connection IDs. */ -private AtomicInteger connectionId; +private final AtomicInteger connectionId; /** * Creates a new QuickConnectDirectory with the default http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index aa98db7..36a5a8f 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -25,9 +25,7 @@ import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AbstractUserContext; import org.apache.guacamole.net.auth.AuthenticationProvider; import org.apache.guacamole.net.auth.ConnectionGroup; -import org.apache.guacamole.net.auth.Directory; import org.apache.guacamole.net.auth.User; -import org.apache.guacamole.net.auth.simple.SimpleDirectory; import org.apache.guacamole.net.auth.simple.SimpleUser; /** http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java index b087c35..dfb60d1 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java @@ -39,7 +39,7 @@ public class QuickConnectionGroup extends AbstractConnectionGroup { /** * A set that will store the Connection identifiers for this group. */ -private Set connectionIdentifiers = +private final Set connectionIdentifiers = new HashSet(Collections.emptyList()); /** http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectRES
[37/50] guacamole-client git commit: GUACAMOLE-38: Use ConcurrentHashMap for threadsafety.
GUACAMOLE-38: Use ConcurrentHashMap for threadsafety. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/555b26ae Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/555b26ae Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/555b26ae Branch: refs/heads/master Commit: 555b26ae1fd1584485ab6b85c0a55a350e035350 Parents: 201fbcd Author: Nick Couchman Authored: Tue May 8 15:58:58 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectDirectory.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/555b26ae/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 30d8683..5070ea6 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -19,7 +19,7 @@ package org.apache.guacamole.auth.quickconnect; -import java.util.HashMap; +import java.util.concurrent.ConcurrentHashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import org.apache.guacamole.GuacamoleException; @@ -45,7 +45,7 @@ public class QuickConnectDirectory extends SimpleDirectory { * The connections to store. */ private final Map connections = -new HashMap(); +new ConcurrentHashMap(); /** * The root connection group for this directory.
[47/50] guacamole-client git commit: GUACAMOLE-38: Update comments to match recent changes in return type of REST create method.
GUACAMOLE-38: Update comments to match recent changes in return type of REST create method. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6d0b6d64 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6d0b6d64 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6d0b6d64 Branch: refs/heads/master Commit: 6d0b6d649462c59de67257091cadb1485c8aeb92 Parents: b283adc Author: Nick Couchman Authored: Tue May 22 22:35:56 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../guacamole/auth/quickconnect/rest/QuickConnectREST.java| 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6d0b6d64/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index 275e1a4..4cced07 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -56,14 +56,15 @@ public class QuickConnectREST { /** * Parse the URI read from the POST input, add the connection - * to the directory, and return the identifier of the newly-created - * connection. + * to the directory, and return a Map containing a single key, + * identifier, and the identifier of the new connection. * * @param uri * The URI to parse into a connection. * * @return - * The identifier of the connection in the directory. + * A Map containing a single key, identifier, and the + * identifier of the new connection. * * @throws GuacamoleException * If an error is encountered parsing the URI.
[47/50] guacamole-client git commit: GUACAMOLE-38: Update comments to match recent changes in return type of REST create method.
GUACAMOLE-38: Update comments to match recent changes in return type of REST create method. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6d0b6d64 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6d0b6d64 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6d0b6d64 Branch: refs/heads/staging/1.0.0 Commit: 6d0b6d649462c59de67257091cadb1485c8aeb92 Parents: b283adc Author: Nick Couchman Authored: Tue May 22 22:35:56 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../guacamole/auth/quickconnect/rest/QuickConnectREST.java| 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6d0b6d64/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index 275e1a4..4cced07 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -56,14 +56,15 @@ public class QuickConnectREST { /** * Parse the URI read from the POST input, add the connection - * to the directory, and return the identifier of the newly-created - * connection. + * to the directory, and return a Map containing a single key, + * identifier, and the identifier of the new connection. * * @param uri * The URI to parse into a connection. * * @return - * The identifier of the connection in the directory. + * A Map containing a single key, identifier, and the + * identifier of the new connection. * * @throws GuacamoleException * If an error is encountered parsing the URI.
[43/50] guacamole-client git commit: GUACAMOLE-38: Put userInfo directly into configuration.
GUACAMOLE-38: Put userInfo directly into configuration. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/84e71a02 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/84e71a02 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/84e71a02 Branch: refs/heads/staging/1.0.0 Commit: 84e71a029c9a664d4dafa9638511ff468525d115 Parents: aaada49 Author: Nick Couchman Authored: Thu May 17 19:58:12 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 37 .../auth/quickconnect/utility/QCParserTest.java | 37 +++- 2 files changed, 35 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/84e71a02/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 2c0b6dc..60b4b9c 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -137,13 +137,7 @@ public class QCParser { if (userInfo != null && !userInfo.isEmpty()) { try { -Map userInfoParams = parseUserInfo(userInfo); - -if (userInfoParams.containsKey("username")) -qcConfig.setParameter("username", userInfoParams.get("username")); - -if (userInfoParams.containsKey("password")) -qcConfig.setParameter("password", userInfoParams.get("password")); +parseUserInfo(userInfo, qcConfig); } catch (UnsupportedEncodingException e) { throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); @@ -186,39 +180,38 @@ public class QCParser { /** * Parse the given string for username and password values, - * and return a map containing the username, password - * or both. + * and, if values are present, decode them and set them in + * the provided GuacamoleConfiguration object. * * @param userInfo * The string to parse for username/password values. - * - * @return - * A map with the username, password, or both. + * + * @param config + * The GuacamoleConfiguration object to store the username + * and password in. * * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -public static Map parseUserInfo(String userInfo) +public static void parseUserInfo(String userInfo, +GuacamoleConfiguration config) throws UnsupportedEncodingException { -Map userInfoMap = new HashMap(); Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); if (userinfoMatcher.matches()) { -String username = URLDecoder.decode( -userinfoMatcher.group(USERNAME_GROUP), "UTF-8"); -String password = URLDecoder.decode( -userinfoMatcher.group(PASSWORD_GROUP), "UTF-8"); +String username = userinfoMatcher.group(USERNAME_GROUP); +String password = userinfoMatcher.group(PASSWORD_GROUP); if (username != null && !username.isEmpty()) -userInfoMap.put("username", username); +config.setParameter("username", +URLDecoder.decode(username, "UTF-8")); if (password != null && !password.isEmpty()) -userInfoMap.put("password", password); +config.setParameter("password", +URLDecoder.decode(password, "UTF-8")); } -return userInfoMap; - } /** http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/84e71a02/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java index d63a521..50ad7d6 100644 --- a/extensions/guacamole-auth-quickconnect/src
[24/50] guacamole-client git commit: GUACAMOLE-38: Use newly-implemented AbstractuserContext and AbstractAuthenticationProvider classes, remove deprecated classes.
GUACAMOLE-38: Use newly-implemented AbstractuserContext and AbstractAuthenticationProvider classes, remove deprecated classes. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/3feb2c2d Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/3feb2c2d Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/3feb2c2d Branch: refs/heads/staging/1.0.0 Commit: 3feb2c2de1d1d1af96e422b2050e85cb499c39ef Parents: 43919e5 Author: Nick Couchman Authored: Sat Apr 14 11:22:40 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 70 + .../quickconnect/QuickConnectDirectory.java | 71 + .../quickconnect/QuickConnectUserContext.java | 81 3 files changed, 34 insertions(+), 188 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/3feb2c2d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index d638ff8..6e6f2bc 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -23,7 +23,7 @@ import java.util.Collections; import java.util.Map; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AuthenticatedUser; -import org.apache.guacamole.net.auth.AuthenticationProvider; +import org.apache.guacamole.net.auth.AbstractAuthenticationProvider; import org.apache.guacamole.net.auth.Credentials; import org.apache.guacamole.net.auth.credentials.CredentialsInfo; import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException; @@ -35,7 +35,7 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; * process so that the QuickConnect functionality can be initialized and be used * throughout the web client. */ -public class QuickConnectAuthenticationProvider implements AuthenticationProvider { +public class QuickConnectAuthenticationProvider extends AbstractAuthenticationProvider { /** * userContext for this authentication provider. @@ -48,31 +48,6 @@ public class QuickConnectAuthenticationProvider implements AuthenticationProvide } @Override -public Object getResource() throws GuacamoleException { -return null; -} - -/** - * For QuickConnect, authenticateUser simply returns null because this - * extension is designed to provide only a connection directory to users - * that are already authenticated and not any actual authentication. - * - * @param credentials - * Credentials object passed in from Guacamole login. - * - * @return - * Returns null, which causes the client to move on to the next - * module. - */ -@Override -public AuthenticatedUser authenticateUser(Credentials credentials) -throws GuacamoleException { - -return null; - -} - -@Override public UserContext getUserContext(AuthenticatedUser authenticatedUser) throws GuacamoleException { @@ -80,45 +55,4 @@ public class QuickConnectAuthenticationProvider implements AuthenticationProvide } -@Override -public AuthenticatedUser updateAuthenticatedUser(AuthenticatedUser authenticatedUser, -Credentials credentials) throws GuacamoleException { - -// Simply return the given user, updating nothing -return authenticatedUser; - -} - -@Override -public UserContext updateUserContext(UserContext context, -AuthenticatedUser authorizedUser, Credentials credentials) -throws GuacamoleException { - -// Simply return the given context, updating nothing -return context; - -} - -@Override -public UserContext decorate(UserContext context, -AuthenticatedUser authenticatedUser, Credentials credentials) -throws GuacamoleException { - -// Simply return the given context, decorating nothing -return context; - -} - -@Override -public UserContext redecorate(UserContext decorated, UserContext context, -AuthenticatedUser authenticatedUser, Credentials credent
[30/50] guacamole-client git commit: GUACAMOLE-38: Use StringBuilder to gather up name.
GUACAMOLE-38: Use StringBuilder to gather up name. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/d4b7e2b8 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/d4b7e2b8 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/d4b7e2b8 Branch: refs/heads/master Commit: d4b7e2b8b608eaa8ad8e5a21eed8cd3bd92964e7 Parents: cf241f0 Author: Nick Couchman Authored: Thu Apr 19 05:30:51 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 15 --- 1 file changed, 8 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d4b7e2b8/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index ba6e3fd..7d5d7d4 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -19,6 +19,7 @@ package org.apache.guacamole.auth.quickconnect.utility; +import java.lang.StringBuilder; import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; @@ -164,23 +165,23 @@ public class QCParser { String port = config.getParameter("port"); String user = config.getParameter("username"); -String name = ""; +StringBuilder name = new StringBuilder(""); if (protocol != null && !protocol.isEmpty()) -name += protocol + "://"; +name.append(protocol).append("://"); if (user != null && !user.isEmpty()) -name += user + "@"; +name.append(user).append("@"); if (host != null && !host.isEmpty()) -name += host; +name.append(host); if (port != null && !port.isEmpty()) -name += ":" + port; +name.append(":").append(port); -name += "/"; +name.append("/"); -return name; +return name.toString(); } }
[34/50] guacamole-client git commit: GUACAMOLE-38: Fix issues with root identifier and directory.
GUACAMOLE-38: Fix issues with root identifier and directory. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/7df88cdf Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/7df88cdf Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/7df88cdf Branch: refs/heads/staging/1.0.0 Commit: 7df88cdfbd22bd0964a634736c348b7475c5cd1b Parents: 555b26a Author: Nick Couchman Authored: Tue May 8 16:28:10 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../quickconnect/QuickConnectDirectory.java | 7 +-- .../quickconnect/QuickConnectUserContext.java | 21 2 files changed, 14 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/7df88cdf/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 5070ea6..ceb8c80 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -37,11 +37,6 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; public class QuickConnectDirectory extends SimpleDirectory { /** - * The unique identifier of the root connection group. - */ -private static final String ROOT_IDENTIFIER = "ROOT"; - -/** * The connections to store. */ private final Map connections = @@ -113,7 +108,7 @@ public class QuickConnectDirectory extends SimpleDirectory { // Create a new connection and set the parent identifier. Connection connection = new SimpleConnection(name, connectionId, config); -connection.setParentIdentifier(ROOT_IDENTIFIER); + connection.setParentIdentifier(QuickConnectUserContext.ROOT_IDENTIFIER); // Place the object in this directory. add(connection); http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/7df88cdf/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 32f4b37..aa98db7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -38,6 +38,11 @@ import org.apache.guacamole.net.auth.simple.SimpleUser; public class QuickConnectUserContext extends AbstractUserContext { /** + * The unique identifier of the root connection group. + */ +public static final String ROOT_IDENTIFIER = DEFAULT_ROOT_CONNECTION_GROUP; + +/** * The AuthenticationProvider that created this UserContext. */ private final AuthenticationProvider authProvider; @@ -71,25 +76,25 @@ public class QuickConnectUserContext extends AbstractUserContext { * The name of the user logging in and using this class. */ public QuickConnectUserContext(AuthenticationProvider authProvider, -String username) { +String username) throws GuacamoleException { // Initialize the rootGroup to a basic connection group with a // single root identifier. this.rootGroup = new QuickConnectionGroup( -DEFAULT_ROOT_CONNECTION_GROUP, -DEFAULT_ROOT_CONNECTION_GROUP +ROOT_IDENTIFIER, +ROOT_IDENTIFIER ); +// Initialize the connection directory +this.connectionDirectory = new QuickConnectDirectory(this.rootGroup); + // Initialize the user to a SimpleUser with the provided username, // no connections, and the single root group. this.self = new SimpleUser(username, -Collections.emptyList(), -Collections.singleton(DEFAULT_ROOT_CONNECTION_GROUP) +connectionDirectory.getIdentifiers(), +Collections.singleton(ROOT_IDENTIFIER) ); -// Initia
[46/50] guacamole-client git commit: GUACAMOLE-38: Clean up comments and make a couple of methods private.
GUACAMOLE-38: Clean up comments and make a couple of methods private. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/97d2d3a2 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/97d2d3a2 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/97d2d3a2 Branch: refs/heads/staging/1.0.0 Commit: 97d2d3a2c95403784bc3b0324194ef8be4333e13 Parents: 6d0b6d6 Author: Nick Couchman Authored: Wed May 30 11:23:00 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java | 16 .../quickconnect/QuickConnectUserContext.java | 11 --- .../auth/quickconnect/QuickConnectionGroup.java | 6 +- .../auth/quickconnect/utility/QCParser.java | 18 -- 4 files changed, 29 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/97d2d3a2/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 8841944..37b07ba 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -31,8 +31,8 @@ import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.protocol.GuacamoleConfiguration; /** - * Implementation of a directory to stored Connection objects - * completely in-memory. + * Implementation of a directory to store Connection objects + * completely in memory. */ public class QuickConnectDirectory extends SimpleDirectory { @@ -89,7 +89,7 @@ public class QuickConnectDirectory extends SimpleDirectory { * identifier value of the new connection. * * @param config - * The GuacamoleConfiguration to use to create the + * The GuacamoleConfiguration object to use to create the * SimpleConnection object. * * @return @@ -100,23 +100,23 @@ public class QuickConnectDirectory extends SimpleDirectory { */ public String create(GuacamoleConfiguration config) throws GuacamoleException { -// Get the next connection identifier. -String connectionId = Integer.toString(getNextConnectionID()); +// Get the next available connection identifier. +String newConnectionId = Integer.toString(getNextConnectionID()); // Generate a name for the configuration. String name = QCParser.getName(config); // Create a new connection and set the parent identifier. -Connection connection = new SimpleConnection(name, connectionId, config); +Connection connection = new SimpleConnection(name, newConnectionId, config); connection.setParentIdentifier(QuickConnectUserContext.ROOT_IDENTIFIER); // Place the object in this directory. add(connection); // Add connection to the tree. -this.rootGroup.addConnectionIdentifier(connectionId); +rootGroup.addConnectionIdentifier(newConnectionId); -return connectionId; +return newConnectionId; } } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/97d2d3a2/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 36a5a8f..d7e23ed 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -29,7 +29,7 @@ import org.apache.guacamole.net.auth.User; import org.apache.guacamole.net.auth.simple.SimpleUser; /** - * A simple implementation of UserContext to support the QuickConnect + * A simple implementation of UserContext to support this * extension, used for storing connections the user has created * with the QuickConnect bar in the webapp. */ @@ -71,12 +71,17 @@ public class Qui
[20/50] guacamole-client git commit: GUACAMOLE-38: Tweak to regex and correct behavior of matcher.
GUACAMOLE-38: Tweak to regex and correct behavior of matcher. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/43919e56 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/43919e56 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/43919e56 Branch: refs/heads/master Commit: 43919e56239bfad26908d4eb257b459fe5818121 Parents: 16130b3 Author: Nick Couchman Authored: Sun Mar 25 15:02:16 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../apache/guacamole/auth/quickconnect/utility/QCParser.java | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/43919e56/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 6bd0435..d67d7ef 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -49,7 +49,7 @@ public class QCParser { /** * The regex to use to split username and password. */ -private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):(.*)"); +private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):?(.*)"); /** * The regex group of the username. @@ -107,8 +107,10 @@ public class QCParser { if (userInfo != null && !userInfo.equals("")) { Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); -username = userinfoMatcher.group(USERNAME_GROUP); -password = userinfoMatcher.group(PASSWORD_GROUP); +if (userinfoMatcher.matches()) { +username = userinfoMatcher.group(USERNAME_GROUP); +password = userinfoMatcher.group(PASSWORD_GROUP); +} }
[48/50] guacamole-client git commit: GUACAMOLE-38: Remove default protocol and port, throw errors if not specified.
GUACAMOLE-38: Remove default protocol and port, throw errors if not specified. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/8c130215 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/8c130215 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/8c130215 Branch: refs/heads/master Commit: 8c130215f49c862819b3dfca219403db296a3a18 Parents: 84e71a0 Author: Nick Couchman Authored: Mon May 21 09:56:50 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java| 17 - 1 file changed, 4 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/8c130215/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 60b4b9c..2810f1d 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -42,17 +42,6 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; public class QCParser { /** - * The default protocol to use if one is not provided in - * the incoming URI. - */ -public static final String DEFAULT_URI_PROTOCOL = "ssh"; - -/** - * The default host to use if one is not defined. - */ -public static final String DEFAULT_URI_HOST = "localhost"; - -/** * The regex to use to split username and password. */ private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):?(.*)"); @@ -89,6 +78,8 @@ public class QCParser { URI qcUri; try { qcUri = new URI(uri); +if (!qcUri.isAbsolute()) +throw new GuacamoleClientException("URI must be absolute."); } catch (URISyntaxException e) { throw new GuacamoleClientException("Invalid URI Syntax", e); @@ -108,7 +99,7 @@ public class QCParser { if (protocol != null && !protocol.isEmpty()) qcConfig.setProtocol(protocol); else -qcConfig.setProtocol(DEFAULT_URI_PROTOCOL); +throw new GuacamoleClientException("No protocol specified."); // Check for provided port number if (port > 0) @@ -118,7 +109,7 @@ public class QCParser { if (host != null && !host.isEmpty()) qcConfig.setParameter("hostname", host); else -qcConfig.setParameter("hostname", DEFAULT_URI_HOST); +throw new GuacamoleClientException("No host specified."); // Look for extra query parameters and parse them out. if (query != null && !query.isEmpty()) {
[15/50] guacamole-client git commit: GUACAMOLE-38: Fix up string checks in QCParser class.
GUACAMOLE-38: Fix up string checks in QCParser class. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/cf241f04 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/cf241f04 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/cf241f04 Branch: refs/heads/master Commit: cf241f041e34e64515fe185314af5ade5b716309 Parents: 0cbf90a Author: Nick Couchman Authored: Tue Apr 17 22:29:46 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 22 ++-- 1 file changed, 11 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/cf241f04/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index be157dc..ba6e3fd 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -95,16 +95,16 @@ public class QCParser { String password = null; List paramList = null; -if (protocol == null || protocol.equals("")) +if (protocol == null || protocol.isEmpty()) protocol = DEFAULT_URI_PROTOCOL; -if (host == null || host.equals("")) +if (host == null || host.isEmpty()) host = DEFAULT_URI_HOST; -if (query != null && !query.equals("")) +if (query != null && !query.isEmpty()) paramList = Arrays.asList(query.split("&")); -if (userInfo != null && !userInfo.equals("")) { +if (userInfo != null && !userInfo.isEmpty()) { Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); if (userinfoMatcher.matches()) { @@ -121,15 +121,15 @@ public class QCParser { if (port > 0) qcConfig.setParameter("port", Integer.toString(port)); -if (username != null && username.length() > 0) +if (username != null && !username.isEmpty()) qcConfig.setParameter("username", username); -if (password != null && password.length() > 0) +if (password != null && !password.isEmpty()) qcConfig.setParameter("password", password); if (paramList != null) { for (String parameter : paramList) { -String[] paramArray = parameter.split("="); +String[] paramArray = parameter.split("=", 2); qcConfig.setParameter(paramArray[0],paramArray[1]); } } @@ -166,16 +166,16 @@ public class QCParser { String name = ""; -if (protocol != null && !protocol.equals("")) +if (protocol != null && !protocol.isEmpty()) name += protocol + "://"; -if (user != null && !user.equals("")) +if (user != null && !user.isEmpty()) name += user + "@"; -if (host != null && !host.equals("")) +if (host != null && !host.isEmpty()) name += host; -if (port != null && !port.equals("")) +if (port != null && !port.isEmpty()) name += ":" + port; name += "/";
[46/50] guacamole-client git commit: GUACAMOLE-38: Clean up comments and make a couple of methods private.
GUACAMOLE-38: Clean up comments and make a couple of methods private. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/97d2d3a2 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/97d2d3a2 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/97d2d3a2 Branch: refs/heads/master Commit: 97d2d3a2c95403784bc3b0324194ef8be4333e13 Parents: 6d0b6d6 Author: Nick Couchman Authored: Wed May 30 11:23:00 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java | 16 .../quickconnect/QuickConnectUserContext.java | 11 --- .../auth/quickconnect/QuickConnectionGroup.java | 6 +- .../auth/quickconnect/utility/QCParser.java | 18 -- 4 files changed, 29 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/97d2d3a2/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 8841944..37b07ba 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -31,8 +31,8 @@ import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.protocol.GuacamoleConfiguration; /** - * Implementation of a directory to stored Connection objects - * completely in-memory. + * Implementation of a directory to store Connection objects + * completely in memory. */ public class QuickConnectDirectory extends SimpleDirectory { @@ -89,7 +89,7 @@ public class QuickConnectDirectory extends SimpleDirectory { * identifier value of the new connection. * * @param config - * The GuacamoleConfiguration to use to create the + * The GuacamoleConfiguration object to use to create the * SimpleConnection object. * * @return @@ -100,23 +100,23 @@ public class QuickConnectDirectory extends SimpleDirectory { */ public String create(GuacamoleConfiguration config) throws GuacamoleException { -// Get the next connection identifier. -String connectionId = Integer.toString(getNextConnectionID()); +// Get the next available connection identifier. +String newConnectionId = Integer.toString(getNextConnectionID()); // Generate a name for the configuration. String name = QCParser.getName(config); // Create a new connection and set the parent identifier. -Connection connection = new SimpleConnection(name, connectionId, config); +Connection connection = new SimpleConnection(name, newConnectionId, config); connection.setParentIdentifier(QuickConnectUserContext.ROOT_IDENTIFIER); // Place the object in this directory. add(connection); // Add connection to the tree. -this.rootGroup.addConnectionIdentifier(connectionId); +rootGroup.addConnectionIdentifier(newConnectionId); -return connectionId; +return newConnectionId; } } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/97d2d3a2/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 36a5a8f..d7e23ed 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -29,7 +29,7 @@ import org.apache.guacamole.net.auth.User; import org.apache.guacamole.net.auth.simple.SimpleUser; /** - * A simple implementation of UserContext to support the QuickConnect + * A simple implementation of UserContext to support this * extension, used for storing connections the user has created * with the QuickConnect bar in the webapp. */ @@ -71,12 +71,17 @@ public class QuickConne
[38/50] guacamole-client git commit: GUACAMOLE-38: Fix issues with root identifier and directory.
GUACAMOLE-38: Fix issues with root identifier and directory. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/7df88cdf Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/7df88cdf Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/7df88cdf Branch: refs/heads/master Commit: 7df88cdfbd22bd0964a634736c348b7475c5cd1b Parents: 555b26a Author: Nick Couchman Authored: Tue May 8 16:28:10 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../quickconnect/QuickConnectDirectory.java | 7 +-- .../quickconnect/QuickConnectUserContext.java | 21 2 files changed, 14 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/7df88cdf/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 5070ea6..ceb8c80 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -37,11 +37,6 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; public class QuickConnectDirectory extends SimpleDirectory { /** - * The unique identifier of the root connection group. - */ -private static final String ROOT_IDENTIFIER = "ROOT"; - -/** * The connections to store. */ private final Map connections = @@ -113,7 +108,7 @@ public class QuickConnectDirectory extends SimpleDirectory { // Create a new connection and set the parent identifier. Connection connection = new SimpleConnection(name, connectionId, config); -connection.setParentIdentifier(ROOT_IDENTIFIER); + connection.setParentIdentifier(QuickConnectUserContext.ROOT_IDENTIFIER); // Place the object in this directory. add(connection); http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/7df88cdf/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 32f4b37..aa98db7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -38,6 +38,11 @@ import org.apache.guacamole.net.auth.simple.SimpleUser; public class QuickConnectUserContext extends AbstractUserContext { /** + * The unique identifier of the root connection group. + */ +public static final String ROOT_IDENTIFIER = DEFAULT_ROOT_CONNECTION_GROUP; + +/** * The AuthenticationProvider that created this UserContext. */ private final AuthenticationProvider authProvider; @@ -71,25 +76,25 @@ public class QuickConnectUserContext extends AbstractUserContext { * The name of the user logging in and using this class. */ public QuickConnectUserContext(AuthenticationProvider authProvider, -String username) { +String username) throws GuacamoleException { // Initialize the rootGroup to a basic connection group with a // single root identifier. this.rootGroup = new QuickConnectionGroup( -DEFAULT_ROOT_CONNECTION_GROUP, -DEFAULT_ROOT_CONNECTION_GROUP +ROOT_IDENTIFIER, +ROOT_IDENTIFIER ); +// Initialize the connection directory +this.connectionDirectory = new QuickConnectDirectory(this.rootGroup); + // Initialize the user to a SimpleUser with the provided username, // no connections, and the single root group. this.self = new SimpleUser(username, -Collections.emptyList(), -Collections.singleton(DEFAULT_ROOT_CONNECTION_GROUP) +connectionDirectory.getIdentifiers(), +Collections.singleton(ROOT_IDENTIFIER) ); -// Initialize th
[40/50] guacamole-client git commit: GUACAMOLE-38: Clean up minor code issues.
GUACAMOLE-38: Clean up minor code issues. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/aaada49d Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/aaada49d Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/aaada49d Branch: refs/heads/master Commit: aaada49dfefdb7aab794ebc6054976686fc57970 Parents: 27f4ad0 Author: Nick Couchman Authored: Mon May 14 14:00:50 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java | 2 +- .../auth/quickconnect/QuickConnectUserContext.java| 2 -- .../guacamole/auth/quickconnect/QuickConnectionGroup.java | 2 +- .../auth/quickconnect/rest/QuickConnectREST.java | 2 +- .../guacamole/auth/quickconnect/utility/QCParserTest.java | 10 +- 5 files changed, 12 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index ceb8c80..8841944 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -50,7 +50,7 @@ public class QuickConnectDirectory extends SimpleDirectory { /** * The internal counter for connection IDs. */ -private AtomicInteger connectionId; +private final AtomicInteger connectionId; /** * Creates a new QuickConnectDirectory with the default http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index aa98db7..36a5a8f 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -25,9 +25,7 @@ import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AbstractUserContext; import org.apache.guacamole.net.auth.AuthenticationProvider; import org.apache.guacamole.net.auth.ConnectionGroup; -import org.apache.guacamole.net.auth.Directory; import org.apache.guacamole.net.auth.User; -import org.apache.guacamole.net.auth.simple.SimpleDirectory; import org.apache.guacamole.net.auth.simple.SimpleUser; /** http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java index b087c35..dfb60d1 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectionGroup.java @@ -39,7 +39,7 @@ public class QuickConnectionGroup extends AbstractConnectionGroup { /** * A set that will store the Connection identifiers for this group. */ -private Set connectionIdentifiers = +private final Set connectionIdentifiers = new HashSet(Collections.emptyList()); /** http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aaada49d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java
[03/50] guacamole-client git commit: GUACAMOLE-38: Style and typo fix-ups.
GUACAMOLE-38: Style and typo fix-ups. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6c235565 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6c235565 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6c235565 Branch: refs/heads/master Commit: 6c235565b0d1c4c39576fad37de345669f118af8 Parents: 039c512 Author: Nick Couchman Authored: Sun Feb 18 21:10:49 2018 -0500 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnectAuthenticationProvider.java | 2 +- .../auth/quickconnect/QuickConnectConnectionGroup.java| 2 ++ .../guacamole/auth/quickconnect/QuickConnectDirectory.java| 6 +++--- .../guacamole/auth/quickconnect/QuickConnectUserContext.java | 1 + .../apache/guacamole/auth/quickconnect/QuickConnection.java | 2 ++ .../guacamole/auth/quickconnect/rest/QuickConnectREST.java| 7 +++ .../apache/guacamole/auth/quickconnect/utility/QCParser.java | 2 +- 7 files changed, 13 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c235565/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index a94c7df..f725bdf 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -55,7 +55,7 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv * @param credentials * Credentials object passed in from Guacamole login. * - * @returns + * @return * Returns null, which causes the client to move on to the next * module. */ http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c235565/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java index 5abf0be..4faab1c 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java @@ -48,6 +48,7 @@ class QuickConnectConnectionGroup extends AbstractConnectionGroup { * * @param name * The name of the QuickConnectConnectionGroup. + * * @param identifier * The identifier of the QuickConnectConnectionGroup. */ @@ -67,6 +68,7 @@ class QuickConnectConnectionGroup extends AbstractConnectionGroup { * * @param identifier * The identifier of the connection to add to the group. + * * @return * The String identifier of the connection if the add * operation was successful; otherwise null. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c235565/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 5c9606d..ce1fd1f 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -66,7 +66,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { /** * Returns the current counter and then increments it. * - * @returns + * @return * An Integer representing the next available connection * ID to get used when adding conn
[29/50] guacamole-client git commit: GUACAMOLE-38: Handle encoded query parameters.
GUACAMOLE-38: Handle encoded query parameters. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/963593ea Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/963593ea Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/963593ea Branch: refs/heads/staging/1.0.0 Commit: 963593ea27831ae772f39d8f64b3d2d2a3ac5b8f Parents: d4b7e2b Author: Nick Couchman Authored: Thu Apr 19 06:01:37 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 19 ++- 1 file changed, 18 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/963593ea/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 7d5d7d4..650d561 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -19,16 +19,21 @@ package org.apache.guacamole.auth.quickconnect.utility; +import java.io.UnsupportedEncodingException; import java.lang.StringBuilder; import java.net.URI; import java.net.URISyntaxException; +import java.net.URLDecoder; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.guacamole.GuacamoleClientException; +import org.apache.guacamole.GuacamoleServerException; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.protocol.GuacamoleConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * A utility class to parse out a URI into the settings necessary @@ -37,6 +42,11 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; public class QCParser { /** + * Logger for this class. + */ +private final static Logger logger = LoggerFactory.getLogger(QCParser.class); + +/** * The default protocol to parse to if one is provided in * the incoming URI.. */ @@ -131,7 +141,14 @@ public class QCParser { if (paramList != null) { for (String parameter : paramList) { String[] paramArray = parameter.split("=", 2); -qcConfig.setParameter(paramArray[0],paramArray[1]); +try { +qcConfig.setParameter(URLDecoder.decode(paramArray[0], "UTF-8"), + URLDecoder.decode(paramArray[1], "UTF-8")); +} +catch (UnsupportedEncodingException e) { +logger.error("Unexpected lack of UTF-8 encoding support."); +throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); +} } }
[28/50] guacamole-client git commit: GUACAMOLE-38: Add unit test for query string parser.
GUACAMOLE-38: Add unit test for query string parser. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/aabc871d Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/aabc871d Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/aabc871d Branch: refs/heads/staging/1.0.0 Commit: aabc871d7d05c4db1f4e3906e6a8c93b0fc9a30b Parents: 1011845 Author: Nick Couchman Authored: Thu Apr 19 08:55:24 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml | 8 .../auth/quickconnect/utility/QCParser.java | 2 +- .../auth/quickconnect/utility/QCParserTest.java | 49 3 files changed, 58 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aabc871d/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index e8d0440..b2fd922 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -193,6 +193,14 @@ provided + + +junit +junit +4.10 +test + + http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aabc871d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 4924619..c8e954a 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -167,7 +167,7 @@ public class QCParser { * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -private static Map parseQueryString(String queryStr) +public static Map parseQueryString(String queryStr) throws UnsupportedEncodingException { // Split the query string into the pairs http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/aabc871d/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java new file mode 100644 index 000..5567ea3 --- /dev/null +++ b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java @@ -0,0 +1,49 @@ +/* + * 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.auth.quickconnect.utility; + +import java.io.UnsupportedEncodingException; +import java.util.HashMap; +import java.util.Map; +import org.junit.Test; +import static org.junit.Assert.assertEquals; + +/** + * Class to test methods in the QCParser utility class. + */ +public class QCParserTest { + +/** + * Verify that the parseQueryString() method functions as designed. + */ +@Test +public void testParseQueryString() throws UnsupportedEncodingException { + +final String queryString = "param1=value1¶m2=value2=3¶m3=value%3D3¶m4=value%264"; +Map queryMap = QCParser.parseQueryString(queryString); + +assertEquals("value1", queryMap.get("param1")); +assertEquals("va
[42/50] guacamole-client git commit: GUACAMOLE-38: REST service should return proper JSON.
GUACAMOLE-38: REST service should return proper JSON. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/b283adc7 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/b283adc7 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/b283adc7 Branch: refs/heads/staging/1.0.0 Commit: b283adc73a8296ce53296ea1992c5e88af4ceb46 Parents: 7302013 Author: Nick Couchman Authored: Tue May 22 22:15:58 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../guacamole/auth/quickconnect/rest/QuickConnectREST.java| 7 +-- .../src/main/resources/services/quickConnectService.js| 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/b283adc7/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index cee7591..275e1a4 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -19,6 +19,8 @@ package org.apache.guacamole.auth.quickconnect.rest; +import java.util.Collections; +import java.util.Map; import javax.ws.rs.FormParam; import javax.ws.rs.Path; import javax.ws.rs.POST; @@ -68,10 +70,11 @@ public class QuickConnectREST { */ @POST @Path("create") -public String create(@FormParam("uri") String uri) +public Map create(@FormParam("uri") String uri) throws GuacamoleException { -return directory.create(QCParser.getConfiguration(uri)); +return Collections.singletonMap("identifier", +directory.create(QCParser.getConfiguration(uri))); } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/b283adc7/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js index b5f9475..0da2980 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js @@ -60,7 +60,7 @@ angular.module('guacQuickConnect').factory('quickConnectService', ['$injector', cacheService.users.removeAll(); // Pass on the connection identifier -return connectionId; +return connectionId.identifier; }); };
[18/50] guacamole-client git commit: GUACAMOLE-38: Remove unnecessary null check.
GUACAMOLE-38: Remove unnecessary null check. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/8ed356a7 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/8ed356a7 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/8ed356a7 Branch: refs/heads/staging/1.0.0 Commit: 8ed356a7f2d96675a8751cc87c0e5ec06f3c8653 Parents: add78b9 Author: Nick Couchman Authored: Sat Mar 24 22:06:21 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java | 3 --- 1 file changed, 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/8ed356a7/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index 42e53a2..aef5ca3 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -91,9 +91,6 @@ public class QuickConnectREST { public String create(@FormParam("uri") String uri) throws GuacamoleException { -if (directory == null) -throw new GuacamoleServerException("No connection directory available."); - return directory.create(QCParser.getConfiguration(uri)); }
[21/50] guacamole-client git commit: GUACAMOLE-38: Switch to regex for parsing username and password.
GUACAMOLE-38: Switch to regex for parsing username and password. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/16130b32 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/16130b32 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/16130b32 Branch: refs/heads/staging/1.0.0 Commit: 16130b32fef8a26a54af2d02015bf843a1b6266e Parents: 9ab50a2 Author: Nick Couchman Authored: Sun Mar 25 09:09:34 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 31 +++- 1 file changed, 24 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/16130b32/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 30121df..6bd0435 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -23,6 +23,8 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.apache.guacamole.GuacamoleClientException; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.protocol.GuacamoleConfiguration; @@ -45,6 +47,21 @@ public class QCParser { public static final String DEFAULT_URI_HOST = "localhost"; /** + * The regex to use to split username and password. + */ +private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):(.*)"); + +/** + * The regex group of the username. + */ +private static final int USERNAME_GROUP = 1; + +/** + * THe regex group of the password. + */ +private static final int PASSWORD_GROUP = 2; + +/** * Parse out a URI string and get a connection from that string, * or an exception if the parsing fails. * @@ -88,11 +105,11 @@ public class QCParser { paramList = Arrays.asList(query.split("&")); if (userInfo != null && !userInfo.equals("")) { -String[] authenticators = userInfo.split(":"); -if (authenticators.length > 0 && authenticators[0] != null) -username = authenticators[0]; -if (authenticators.length > 1 && authenticators[1] != null) -password = authenticators[1]; + +Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); +username = userinfoMatcher.group(USERNAME_GROUP); +password = userinfoMatcher.group(PASSWORD_GROUP); + } GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); @@ -102,10 +119,10 @@ public class QCParser { if (port > 0) qcConfig.setParameter("port", Integer.toString(port)); -if (username != null) +if (username != null && username.length() > 0) qcConfig.setParameter("username", username); -if (password != null) +if (password != null && password.length() > 0) qcConfig.setParameter("password", password); if (paramList != null) {
[12/50] guacamole-client git commit: GUACAMOLE-38: Remove unnecessary style element.
GUACAMOLE-38: Remove unnecessary style element. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/add78b9c Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/add78b9c Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/add78b9c Branch: refs/heads/master Commit: add78b9cdb29ecf6469dce303a7d9974a3a7e677 Parents: fb5d272 Author: Nick Couchman Authored: Sat Mar 24 22:02:03 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../src/main/resources/styles/quickconnect.css | 4 1 file changed, 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/add78b9c/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css index 49a407b..ee0c2f5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css @@ -38,10 +38,6 @@ box-sizing: border-box; } -.quickconnect-field input[type="submit"] { -display: none !important; -} - .quickconnect-button { clear: both; float: right;
[21/50] guacamole-client git commit: GUACAMOLE-38: Avoid unnuecessary type-casting.
GUACAMOLE-38: Avoid unnuecessary type-casting. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/9ab50a23 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/9ab50a23 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/9ab50a23 Branch: refs/heads/master Commit: 9ab50a239c818a21f3a39ddeb84576939d721fb3 Parents: c50d372 Author: Nick Couchman Authored: Sat Mar 24 22:34:56 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectUserContext.java | 4 ++-- .../guacamole/auth/quickconnect/rest/QuickConnectREST.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/9ab50a23/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index d9eb389..06ef630 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -80,7 +80,7 @@ public class QuickConnectUserContext implements UserContext { * The Directory with access to all connections within the root group * associated with this UserContext. */ -private final Directory connectionDirectory; +private final QuickConnectDirectory connectionDirectory; /** * The root connection group. @@ -157,7 +157,7 @@ public class QuickConnectUserContext implements UserContext { } @Override -public Directory getConnectionDirectory() +public QuickConnectDirectory getConnectionDirectory() throws GuacamoleException { return connectionDirectory; } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/9ab50a23/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index aef5ca3..d11bd06 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -69,7 +69,7 @@ public class QuickConnectREST { public QuickConnectREST(QuickConnectUserContext userContext) throws GuacamoleException { this.userContext = userContext; -this.directory = (QuickConnectDirectory)this.userContext.getConnectionDirectory(); +this.directory = this.userContext.getConnectionDirectory(); } /**
[43/50] guacamole-client git commit: GUACAMOLE-38: Put userInfo directly into configuration.
GUACAMOLE-38: Put userInfo directly into configuration. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/84e71a02 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/84e71a02 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/84e71a02 Branch: refs/heads/master Commit: 84e71a029c9a664d4dafa9638511ff468525d115 Parents: aaada49 Author: Nick Couchman Authored: Thu May 17 19:58:12 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 37 .../auth/quickconnect/utility/QCParserTest.java | 37 +++- 2 files changed, 35 insertions(+), 39 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/84e71a02/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 2c0b6dc..60b4b9c 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -137,13 +137,7 @@ public class QCParser { if (userInfo != null && !userInfo.isEmpty()) { try { -Map userInfoParams = parseUserInfo(userInfo); - -if (userInfoParams.containsKey("username")) -qcConfig.setParameter("username", userInfoParams.get("username")); - -if (userInfoParams.containsKey("password")) -qcConfig.setParameter("password", userInfoParams.get("password")); +parseUserInfo(userInfo, qcConfig); } catch (UnsupportedEncodingException e) { throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); @@ -186,39 +180,38 @@ public class QCParser { /** * Parse the given string for username and password values, - * and return a map containing the username, password - * or both. + * and, if values are present, decode them and set them in + * the provided GuacamoleConfiguration object. * * @param userInfo * The string to parse for username/password values. - * - * @return - * A map with the username, password, or both. + * + * @param config + * The GuacamoleConfiguration object to store the username + * and password in. * * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -public static Map parseUserInfo(String userInfo) +public static void parseUserInfo(String userInfo, +GuacamoleConfiguration config) throws UnsupportedEncodingException { -Map userInfoMap = new HashMap(); Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); if (userinfoMatcher.matches()) { -String username = URLDecoder.decode( -userinfoMatcher.group(USERNAME_GROUP), "UTF-8"); -String password = URLDecoder.decode( -userinfoMatcher.group(PASSWORD_GROUP), "UTF-8"); +String username = userinfoMatcher.group(USERNAME_GROUP); +String password = userinfoMatcher.group(PASSWORD_GROUP); if (username != null && !username.isEmpty()) -userInfoMap.put("username", username); +config.setParameter("username", +URLDecoder.decode(username, "UTF-8")); if (password != null && !password.isEmpty()) -userInfoMap.put("password", password); +config.setParameter("password", +URLDecoder.decode(password, "UTF-8")); } -return userInfoMap; - } /** http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/84e71a02/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java index d63a521..50ad7d6 100644 --- a/extensions/guacamole-auth-quickconnect/src/test/j
[08/50] guacamole-client git commit: GUACAMOLE-38: Extend SimpleConnection instead of copying code manually.
GUACAMOLE-38: Extend SimpleConnection instead of copying code manually. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/a3d85122 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/a3d85122 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/a3d85122 Branch: refs/heads/master Commit: a3d851228eb523782ce20965be4391645d86f014 Parents: 2113d1a Author: Nick Couchman Authored: Fri Mar 16 14:54:05 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnection.java | 89 ++-- 1 file changed, 5 insertions(+), 84 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/a3d85122/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java index a2f3814..2603f17 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java @@ -36,6 +36,7 @@ import org.apache.guacamole.net.auth.AbstractConnection; import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.net.auth.ConnectionRecord; import org.apache.guacamole.net.auth.GuacamoleProxyConfiguration; +import org.apache.guacamole.net.auth.simple.SimpleConnection; import org.apache.guacamole.protocol.ConfiguredGuacamoleSocket; import org.apache.guacamole.protocol.GuacamoleClientInformation; import org.apache.guacamole.protocol.GuacamoleConfiguration; @@ -43,12 +44,7 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; /** * A type of Connection specific to this authentication extension. */ -public class QuickConnection extends AbstractConnection { - -/** - * Backing configuration, containing all sensitive information. - */ -private GuacamoleConfiguration config; +public class QuickConnection extends SimpleConnection { /** * Number of active connections. @@ -80,12 +76,7 @@ public class QuickConnection extends AbstractConnection { public QuickConnection(String name, String identifier, GuacamoleConfiguration config) { -setName(name); - -setIdentifier(identifier); - -setConfiguration(config); -this.config = config; +super(name, identifier, config); this.activeConnections = 0; @@ -101,81 +92,11 @@ public class QuickConnection extends AbstractConnection { */ public QuickConnection(Connection object) { -setName(object.getName()); -setIdentifier(object.getIdentifier()); + super(object.getName(),object.getIdentifier(),object.getConfiguration()); + setParentIdentifier(object.getParentIdentifier()); -setConfiguration(object.getConfiguration()); -this.config = object.getConfiguration(); this.activeConnections = 0; } -@Override -public int getActiveConnections() { -return activeConnections; -} - -@Override -public Map getAttributes() { -return Collections.emptyMap(); -} - -@Override -public void setAttributes(Map attributes) { -// Do nothing - there are no attributes -} - -@Override -public GuacamoleTunnel connect(GuacamoleClientInformation info) -throws GuacamoleException { - -// Retrieve proxy configuration from environment -Environment environment = new LocalEnvironment(); -GuacamoleProxyConfiguration proxyConfig = environment.getDefaultGuacamoleProxyConfiguration(); - -// Get guacd connection parameters -String hostname = proxyConfig.getHostname(); -int port = proxyConfig.getPort(); - -GuacamoleSocket socket; - -// Determine socket type based on required encryption method -switch (proxyConfig.getEncryptionMethod()) { - -// If guacd requires SSL, use it -case SSL: -socket = new ConfiguredGuacamoleSocket( -new SSLGuacamoleSocket(hostname, port), -config, info -); -break; - -// Connect directly via TCP if encryption is not enabled -case NONE: -socket = new ConfiguredGuacamoleSocket( -new InetGuacamoleSocket(hostname, port), -config
[10/50] guacamole-client git commit: GUACAMOLE-38: Get rid of unnecessary userContext initialization.
GUACAMOLE-38: Get rid of unnecessary userContext initialization. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/b31b09a2 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/b31b09a2 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/b31b09a2 Branch: refs/heads/master Commit: b31b09a2f5b0562cf6ed971660c319a833b735c7 Parents: 6a922a7 Author: Nick Couchman Authored: Tue Apr 17 21:36:38 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 12 ++-- 1 file changed, 2 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/b31b09a2/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 5223793..35fa8b7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -31,11 +31,6 @@ import org.apache.guacamole.net.auth.UserContext; */ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationProvider { -/** - * userContext for this authentication provider. - */ -private UserContext userContext; - @Override public String getIdentifier() { return "quickconnect"; @@ -45,11 +40,8 @@ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationPr public UserContext getUserContext(AuthenticatedUser authenticatedUser) throws GuacamoleException { -if (userContext == null) -userContext = new QuickConnectUserContext(this, -authenticatedUser.getIdentifier()); - -return userContext; +return new QuickConnectUserContext(this, +authenticatedUser.getIdentifier()); }
[11/50] guacamole-client git commit: GUACAMOLE-38: Minor documentation tweaks.
GUACAMOLE-38: Minor documentation tweaks. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6a922a78 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6a922a78 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6a922a78 Branch: refs/heads/master Commit: 6a922a781139e157cfa7cf5889e6e2f1e688693a Parents: 12d92d2 Author: Nick Couchman Authored: Tue Apr 17 17:30:52 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- extensions/guacamole-auth-quickconnect/src/licenses/NOTICE | 2 +- .../org/apache/guacamole/auth/quickconnect/utility/QCParser.java | 3 +-- .../src/main/resources/controllers/quickconnectController.js | 4 3 files changed, 6 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6a922a78/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE b/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE index 47f2b4c..97e6130 100644 --- a/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE +++ b/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE @@ -1,5 +1,5 @@ Apache Guacamole -Copyright 2017 The Apache Software Foundation +Copyright 2018 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6a922a78/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index d67d7ef..be157dc 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -148,8 +148,7 @@ public class QCParser { * the name. * * @return - * The String value of the name that is generated, or - * null if no config is provided. + * The String value of the name that is generated. * * @throws GuacamoleException * If an error occurs getting items in the configuration. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6a922a78/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js index 0313730..640034f 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js @@ -43,6 +43,10 @@ angular.module('guacQuickConnect').controller('quickconnectController', ['$scope } }; +/** + * The URI that will be passed in to the extension to create + * the connection. + */ $scope.uri = null; /**
[29/50] guacamole-client git commit: GUACAMOLE-38: REST class only needs directory, not entire userContext object.
GUACAMOLE-38: REST class only needs directory, not entire userContext object. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/d9751f20 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/d9751f20 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/d9751f20 Branch: refs/heads/master Commit: d9751f20d0427379e247af803311081f0dcc27cd Parents: 963593e Author: Nick Couchman Authored: Thu Apr 19 06:29:06 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/QuickConnectUserContext.java | 2 +- .../auth/quickconnect/rest/QuickConnectREST.java | 15 --- 2 files changed, 5 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d9751f20/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 4382659..d2315e5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -114,7 +114,7 @@ public class QuickConnectUserContext extends AbstractUserContext { @Override public Object getResource() throws GuacamoleException { -return new QuickConnectREST(this); +return new QuickConnectREST(connectionDirectory); } @Override http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d9751f20/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index 48dec4c..4b0b9fd 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -26,7 +26,6 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.auth.quickconnect.QuickConnectDirectory; -import org.apache.guacamole.auth.quickconnect.QuickConnectUserContext; import org.apache.guacamole.auth.quickconnect.utility.QCParser; /** @@ -42,25 +41,19 @@ public class QuickConnectREST { private QuickConnectDirectory directory; /** - * The UserContext object for this REST endpoint. - */ -private QuickConnectUserContext userContext; - -/** * Construct a new QuickConnectREST class, taking in the UserContext * object that calls this constructor. * - * @param userContext - * The UserContext object associated with this REST endpoint + * @param directory + * The ConnectionDirectory object associated with this REST endpoint * * @throws GuacamoleException * If the UserContext is unavailable or the directory object * cannot be retrieved. */ -public QuickConnectREST(QuickConnectUserContext userContext) +public QuickConnectREST(QuickConnectDirectory directory) throws GuacamoleException { -this.userContext = userContext; -this.directory = this.userContext.getConnectionDirectory(); +this.directory = directory; } /**
[50/50] guacamole-client git commit: Merge 1.0.0 changes back to master.
Merge 1.0.0 changes back to master. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/2daf38b3 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/2daf38b3 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/2daf38b3 Branch: refs/heads/master Commit: 2daf38b32cee90257ce957f0f366c527d8bda409 Parents: 2fb377a 72bc8c0 Author: Michael Jumper Authored: Sun Jun 3 12:05:55 2018 -0700 Committer: Michael Jumper Committed: Sun Jun 3 12:05:55 2018 -0700 -- extensions/guacamole-auth-quickconnect/pom.xml | 206 +++ .../src/licenses/LICENSE| 202 +++ .../src/licenses/NOTICE | 5 + .../src/main/assembly/dist.xml | 53 .../QuickConnectAuthenticationProvider.java | 48 .../quickconnect/QuickConnectDirectory.java | 122 + .../quickconnect/QuickConnectException.java | 86 +++ .../quickconnect/QuickConnectUserContext.java | 131 ++ .../auth/quickconnect/QuickConnectionGroup.java | 117 + .../quickconnect/rest/QuickConnectREST.java | 82 ++ .../auth/quickconnect/utility/QCParser.java | 256 +++ .../controllers/quickconnectController.js | 59 + .../src/main/resources/guac-manifest.json | 31 +++ .../src/main/resources/quickconnectModule.js| 28 ++ .../resources/services/quickConnectService.js | 69 + .../src/main/resources/styles/quickconnect.css | 53 .../resources/templates/quickconnectField.html | 11 + .../src/main/resources/translations/en.json | 18 ++ .../auth/quickconnect/utility/QCParserTest.java | 122 + pom.xml | 1 + 20 files changed, 1700 insertions(+) --
[02/50] guacamole-client git commit: GUACAMOLE-38: Fix parameter name to sometihng more fitting to its function.
GUACAMOLE-38: Fix parameter name to sometihng more fitting to its function. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/2113d1aa Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/2113d1aa Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/2113d1aa Branch: refs/heads/master Commit: 2113d1aa96cc5595108adbd30f94b59c9c023825 Parents: 6c23556 Author: Nick Couchman Authored: Fri Mar 16 14:37:05 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/2113d1aa/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index ce1fd1f..00c5044 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -86,7 +86,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { * QuickConnection connection, after setting the identifier * and parent object. * - * @param object + * @param connection * The QuickConnection object to add to the tree. * * @return @@ -96,17 +96,17 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { * If an error is encountered adding the object to the * directory. */ -public String put(QuickConnection object) throws GuacamoleException { +public String put(QuickConnection connection) throws GuacamoleException { // Get the next connection ID. String connectionId = getNextConnectionID().toString(); // Set up identifier and parent on object. -object.setIdentifier(connectionId); -object.setParentIdentifier(ROOT_IDENTIFIER); +connection.setIdentifier(connectionId); +connection.setParentIdentifier(ROOT_IDENTIFIER); // Add connection to the directory -putConnection(object); +putConnection(connection); // Add connection to the tree this.rootGroup.addConnectionIdentifier(connectionId);
[18/50] guacamole-client git commit: GUACAMOLE-38: Remove unnecessary null check.
GUACAMOLE-38: Remove unnecessary null check. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/8ed356a7 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/8ed356a7 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/8ed356a7 Branch: refs/heads/master Commit: 8ed356a7f2d96675a8751cc87c0e5ec06f3c8653 Parents: add78b9 Author: Nick Couchman Authored: Sat Mar 24 22:06:21 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java | 3 --- 1 file changed, 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/8ed356a7/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index 42e53a2..aef5ca3 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -91,9 +91,6 @@ public class QuickConnectREST { public String create(@FormParam("uri") String uri) throws GuacamoleException { -if (directory == null) -throw new GuacamoleServerException("No connection directory available."); - return directory.create(QCParser.getConfiguration(uri)); }
[33/50] guacamole-client git commit: GUACAMOLE-38: Remove bundled aopalliance license.
GUACAMOLE-38: Remove bundled aopalliance license. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/66294518 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/66294518 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/66294518 Branch: refs/heads/master Commit: 6629451892f7ae160a0cfdea15b309b80da744fe Parents: cfd1673 Author: Nick Couchman Authored: Sat Apr 28 08:28:03 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../src/licenses/LICENSE | 19 --- .../src/licenses/bundled/README | 4 .../src/licenses/bundled/aopalliance-1.0/LICENSE | 4 3 files changed, 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/66294518/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE index e8788bb..d645695 100644 --- a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE +++ b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE @@ -200,22 +200,3 @@ 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. - - -== - -APACHE GUACAMOLE SUBCOMPONENTS - -Apache Guacamole includes a number of subcomponents with separate copyright -notices and license terms. Your use of these subcomponents is subject to the -terms and conditions of the following licenses. - - -AOP Alliance (http://aopalliance.sourceforge.net/) --- - -Version: 1.0 -From: 'AOP Alliance' (http://aopalliance.sourceforge.net/members.html) -License(s): -Public Domain (bundled/aopalliance-1.0/LICENSE) - http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/66294518/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README b/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README deleted file mode 100644 index 47ba19d..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README +++ /dev/null @@ -1,4 +0,0 @@ -Apache Guacamole includes a number of subcomponents with separate copyright -notices and license terms. Your use of these subcomponents is subject to the -terms and conditions of their respective licenses, included within this -directory for reference. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/66294518/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE b/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE deleted file mode 100644 index 8e0e378..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE +++ /dev/null @@ -1,4 +0,0 @@ -From http://aopalliance.sourceforge.net/: - -LICENCE: all the source code provided by AOP Alliance is Public Domain. -
[07/50] guacamole-client git commit: GUACAMOLE-38: Make connection ID incrementing thread-safe.
GUACAMOLE-38: Make connection ID incrementing thread-safe. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/8fa0cea7 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/8fa0cea7 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/8fa0cea7 Branch: refs/heads/master Commit: 8fa0cea7936a5740cebf464902f8445dc30120c4 Parents: a3d8512 Author: Nick Couchman Authored: Sun Mar 18 20:42:37 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java| 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/8fa0cea7/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 00c5044..2e19870 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -20,6 +20,7 @@ package org.apache.guacamole.auth.quickconnect; import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.auth.quickconnect.utility.QCParser; import org.apache.guacamole.net.auth.ConnectionGroup; @@ -46,7 +47,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { /** * The internal counter for connection IDs. */ -private int CONNECTION_ID = 0; +private AtomicInteger connectionId; /** * Creates a new QuickConnectDirectory which provides access to the @@ -61,6 +62,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { public QuickConnectDirectory(Collection connections, ConnectionGroup rootGroup) { super(connections); this.rootGroup = (QuickConnectConnectionGroup)rootGroup; +this.connectionId = new AtomicInteger(); } /** @@ -70,8 +72,8 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { * An Integer representing the next available connection * ID to get used when adding connections. */ -private Integer getNextConnectionID() { -return CONNECTION_ID++; +private int getNextConnectionID() { +return connectionId.getAndIncrement(); } @Override @@ -99,7 +101,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { public String put(QuickConnection connection) throws GuacamoleException { // Get the next connection ID. -String connectionId = getNextConnectionID().toString(); +String connectionId = Integer.toString(getNextConnectionID()); // Set up identifier and parent on object. connection.setIdentifier(connectionId); @@ -132,7 +134,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { public String create(GuacamoleConfiguration config) throws GuacamoleException { // Get the next connection ID -String connectionId = getNextConnectionID().toString(); +String connectionId = Integer.toString(getNextConnectionID()); // Generate a name for the configuration String name = QCParser.getName(config);
[05/50] guacamole-client git commit: GUACAMOLE-38: Leave default port to individual protocols.
GUACAMOLE-38: Leave default port to individual protocols. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/5c96cd63 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/5c96cd63 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/5c96cd63 Branch: refs/heads/master Commit: 5c96cd63267abf184d9a689f694f0a1e4da453d5 Parents: 6c71f4d Author: Nick Couchman Authored: Sat Mar 24 20:44:02 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../guacamole/auth/quickconnect/utility/QCParser.java | 12 +++- 1 file changed, 3 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/5c96cd63/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 3de9e80..30121df 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -45,11 +45,6 @@ public class QCParser { public static final String DEFAULT_URI_HOST = "localhost"; /** - * The default port to use if one is not defined. - */ -public static final Integer DEFAULT_URI_PORT = 22; - -/** * Parse out a URI string and get a connection from that string, * or an exception if the parsing fails. * @@ -89,9 +84,6 @@ public class QCParser { if (host == null || host.equals("")) host = DEFAULT_URI_HOST; -if (port == -1 || port < 1) -port = DEFAULT_URI_PORT; - if (query != null && !query.equals("")) paramList = Arrays.asList(query.split("&")); @@ -106,7 +98,9 @@ public class QCParser { GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); qcConfig.setProtocol(protocol); qcConfig.setParameter("hostname",host); -qcConfig.setParameter("port", Integer.toString(port)); + +if (port > 0) +qcConfig.setParameter("port", Integer.toString(port)); if (username != null) qcConfig.setParameter("username", username);
[13/50] guacamole-client git commit: GUACAMOLE-38: Clean up lots of unnecessary code.
GUACAMOLE-38: Clean up lots of unnecessary code. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/0cbf90a5 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/0cbf90a5 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/0cbf90a5 Branch: refs/heads/master Commit: 0cbf90a55df8c14eb80391bb97c831f5bb910e71 Parents: c994c5a Author: Nick Couchman Authored: Tue Apr 17 22:10:25 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectConnectionGroup.java| 113 --- .../quickconnect/QuickConnectDirectory.java | 11 +- .../quickconnect/QuickConnectUserContext.java | 15 +-- .../auth/quickconnect/QuickConnection.java | 87 -- .../auth/quickconnect/QuickConnectionGroup.java | 113 +++ 5 files changed, 120 insertions(+), 219 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/0cbf90a5/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java deleted file mode 100644 index 2f37e08..000 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * 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.auth.quickconnect; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.GuacamoleSecurityException; -import org.apache.guacamole.net.GuacamoleTunnel; -import org.apache.guacamole.net.auth.AbstractConnectionGroup; -import org.apache.guacamole.net.auth.ConnectionGroup; -import org.apache.guacamole.protocol.GuacamoleClientInformation; - -/** - * Provides a very simple, single-level connection group used - * for temporarily storing the QuickConnections created by - * users. - */ -public class QuickConnectConnectionGroup extends AbstractConnectionGroup { - -/** - * The connection identifiers for this group. - */ -private Set connectionIdentifiers; - -/** - * Set up a QuickConnectConnectionGroup with a name and identifier, and - * an empty set of child connections. - * - * @param name - * The name of the QuickConnectConnectionGroup. - * - * @param identifier - * The identifier of the QuickConnectConnectionGroup. - */ -public QuickConnectConnectionGroup(String name, String identifier) { - -setName(name); -setIdentifier(identifier); -setType(ConnectionGroup.Type.ORGANIZATIONAL); - -this.connectionIdentifiers = new HashSet(Collections.emptyList()); - -} - -/** - * Add a connection identifier to this connection group, and - * return the identifier if the add succeeds, else return null. - * - * @param identifier - * The identifier of the connection to add to the group. - * - * @return - * The String identifier of the connection if the add - * operation was successful; otherwise null. - */ -public String addConnectionIdentifier(String identifier) { -if (connectionIdentifiers.add(identifier)) -return identifier; -return null; -} - -@Override -public int getActiveConnections() { -return 0; -} - -@Override -public Set getConnectionIdentifiers() { -return connectionIdentifiers; -} - -@Override -public Set getConnectionGroupIdentifiers() { -return Collections.emptySet(); -} - -
[09/50] guacamole-client git commit: GUACAMOLE-38: Remove unnecessary GUICE/Inject stuff.
GUACAMOLE-38: Remove unnecessary GUICE/Inject stuff. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/c994c5a9 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/c994c5a9 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/c994c5a9 Branch: refs/heads/master Commit: c994c5a9b429d6acec40d7f894b0a6a5749c50bd Parents: b31b09a Author: Nick Couchman Authored: Tue Apr 17 21:44:11 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml | 12 -- .../src/licenses/LICENSE| 18 -- .../src/licenses/bundled/guice-3.0/COPYING | 202 --- .../bundled/javax.inject-1/LICENSE-2.0.txt | 202 --- ...uickConnectAuthenticationProviderModule.java | 81 5 files changed, 515 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c994c5a9/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index 717f42c..e8d0440 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -193,18 +193,6 @@ provided - - -com.google.inject -guice -3.0 - - -com.google.inject.extensions -guice-multibindings -3.0 - - http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c994c5a9/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE index c6cbf77..e8788bb 100644 --- a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE +++ b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE @@ -219,21 +219,3 @@ AOP Alliance (http://aopalliance.sourceforge.net/) License(s): Public Domain (bundled/aopalliance-1.0/LICENSE) - -Google Guice (https://github.com/google/guice) --- - -Version: 3.0 -From: 'Google Inc.' (http://www.google.com/) -License(s): -Apache v2.0 (bundled/guice-3.0/COPYING) - - -JSR-330 / Dependency Injection for Java (http://code.google.com/p/atinject/) - - -Version: 1 -From: 'JSR-330 Expert Group' (https://jcp.org/en/jsr/detail?id=330) -License(s): -Apache v2.0 (bundled/javax.inject-1/LICENSE-2.0.txt) - http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c994c5a9/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING b/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING deleted file mode 100644 index d645695..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 -http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanica
[01/50] guacamole-client git commit: GUACAMOLE-38: Implement the AuthenticationProvider instead of extending another.
Repository: guacamole-client Updated Branches: refs/heads/master 2fb377ac8 -> 2daf38b32 GUACAMOLE-38: Implement the AuthenticationProvider instead of extending another. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/fb5d2723 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/fb5d2723 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/fb5d2723 Branch: refs/heads/master Commit: fb5d2723bcc7cad1585736e644e367d802082d29 Parents: 5c96cd6 Author: Nick Couchman Authored: Sat Mar 24 21:58:19 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 53 +--- 1 file changed, 45 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/fb5d2723/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index c809709..d638ff8 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -23,10 +23,10 @@ import java.util.Collections; import java.util.Map; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AuthenticatedUser; +import org.apache.guacamole.net.auth.AuthenticationProvider; import org.apache.guacamole.net.auth.Credentials; import org.apache.guacamole.net.auth.credentials.CredentialsInfo; import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException; -import org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider; import org.apache.guacamole.net.auth.UserContext; import org.apache.guacamole.protocol.GuacamoleConfiguration; @@ -35,7 +35,7 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; * process so that the QuickConnect functionality can be initialized and be used * throughout the web client. */ -public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProvider { +public class QuickConnectAuthenticationProvider implements AuthenticationProvider { /** * userContext for this authentication provider. @@ -47,6 +47,11 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv return "quickconnect"; } +@Override +public Object getResource() throws GuacamoleException { +return null; +} + /** * For QuickConnect, authenticateUser simply returns null because this * extension is designed to provide only a connection directory to users @@ -68,20 +73,52 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv } @Override -public Map -getAuthorizedConfigurations(Credentials credentials) -throws GuacamoleException { +public UserContext getUserContext(AuthenticatedUser authenticatedUser) +throws GuacamoleException { -return Collections.emptyMap(); +return new QuickConnectUserContext(this, authenticatedUser.getIdentifier()); } @Override -public UserContext getUserContext(AuthenticatedUser authenticatedUser) +public AuthenticatedUser updateAuthenticatedUser(AuthenticatedUser authenticatedUser, +Credentials credentials) throws GuacamoleException { + +// Simply return the given user, updating nothing +return authenticatedUser; + +} + +@Override +public UserContext updateUserContext(UserContext context, +AuthenticatedUser authorizedUser, Credentials credentials) throws GuacamoleException { -return new QuickConnectUserContext(this, authenticatedUser.getIdentifier()); +// Simply return the given context, updating nothing +return context; + +} + +@Override +public UserContext decorate(UserContext context, +AuthenticatedUser authenticatedUser, Credentials credentials) +throws GuacamoleException { + +// Simply return the given context, decorating nothing +return context; } +@Override +public UserContext redecorate(UserContext decorated, UserContext context, +AuthenticatedUser authenticatedUser, Credentials creden
[41/50] guacamole-client git commit: GUACAMOLE-38: Methods being tested need to be public.
GUACAMOLE-38: Methods being tested need to be public. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/1438a511 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/1438a511 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/1438a511 Branch: refs/heads/master Commit: 1438a5117b40b359e629f22aa04338560c3e4da7 Parents: 97d2d3a Author: Nick Couchman Authored: Wed May 30 11:31:41 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../org/apache/guacamole/auth/quickconnect/utility/QCParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/1438a511/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 2924c0d..3e2e5e5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -155,7 +155,7 @@ public class QCParser { * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -private static Map parseQueryString(String queryStr) +public static Map parseQueryString(String queryStr) throws UnsupportedEncodingException { // Split the query string into the pairs @@ -187,7 +187,7 @@ public class QCParser { * @throws UnsupportedEncodingException * If Java lacks UTF-8 support. */ -private static void parseUserInfo(String userInfo, +public static void parseUserInfo(String userInfo, GuacamoleConfiguration config) throws UnsupportedEncodingException {
[45/50] guacamole-client git commit: GUACAMOLE-38: REST service should return proper JSON.
GUACAMOLE-38: REST service should return proper JSON. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/b283adc7 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/b283adc7 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/b283adc7 Branch: refs/heads/master Commit: b283adc73a8296ce53296ea1992c5e88af4ceb46 Parents: 7302013 Author: Nick Couchman Authored: Tue May 22 22:15:58 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../guacamole/auth/quickconnect/rest/QuickConnectREST.java| 7 +-- .../src/main/resources/services/quickConnectService.js| 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/b283adc7/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index cee7591..275e1a4 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -19,6 +19,8 @@ package org.apache.guacamole.auth.quickconnect.rest; +import java.util.Collections; +import java.util.Map; import javax.ws.rs.FormParam; import javax.ws.rs.Path; import javax.ws.rs.POST; @@ -68,10 +70,11 @@ public class QuickConnectREST { */ @POST @Path("create") -public String create(@FormParam("uri") String uri) +public Map create(@FormParam("uri") String uri) throws GuacamoleException { -return directory.create(QCParser.getConfiguration(uri)); +return Collections.singletonMap("identifier", +directory.create(QCParser.getConfiguration(uri))); } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/b283adc7/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js index b5f9475..0da2980 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/services/quickConnectService.js @@ -60,7 +60,7 @@ angular.module('guacQuickConnect').factory('quickConnectService', ['$injector', cacheService.users.removeAll(); // Pass on the connection identifier -return connectionId; +return connectionId.identifier; }); };
[31/50] guacamole-client git commit: GUACAMOLE-38: Handle encoded query parameters.
GUACAMOLE-38: Handle encoded query parameters. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/963593ea Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/963593ea Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/963593ea Branch: refs/heads/master Commit: 963593ea27831ae772f39d8f64b3d2d2a3ac5b8f Parents: d4b7e2b Author: Nick Couchman Authored: Thu Apr 19 06:01:37 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 19 ++- 1 file changed, 18 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/963593ea/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 7d5d7d4..650d561 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -19,16 +19,21 @@ package org.apache.guacamole.auth.quickconnect.utility; +import java.io.UnsupportedEncodingException; import java.lang.StringBuilder; import java.net.URI; import java.net.URISyntaxException; +import java.net.URLDecoder; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.guacamole.GuacamoleClientException; +import org.apache.guacamole.GuacamoleServerException; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.protocol.GuacamoleConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * A utility class to parse out a URI into the settings necessary @@ -37,6 +42,11 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; public class QCParser { /** + * Logger for this class. + */ +private final static Logger logger = LoggerFactory.getLogger(QCParser.class); + +/** * The default protocol to parse to if one is provided in * the incoming URI.. */ @@ -131,7 +141,14 @@ public class QCParser { if (paramList != null) { for (String parameter : paramList) { String[] paramArray = parameter.split("=", 2); -qcConfig.setParameter(paramArray[0],paramArray[1]); +try { +qcConfig.setParameter(URLDecoder.decode(paramArray[0], "UTF-8"), + URLDecoder.decode(paramArray[1], "UTF-8")); +} +catch (UnsupportedEncodingException e) { +logger.error("Unexpected lack of UTF-8 encoding support."); +throw new GuacamoleServerException("Unexpected lack of UTF-8 encoding support.", e); +} } }
[24/50] guacamole-client git commit: GUACAMOLE-38: Use newly-implemented AbstractuserContext and AbstractAuthenticationProvider classes, remove deprecated classes.
GUACAMOLE-38: Use newly-implemented AbstractuserContext and AbstractAuthenticationProvider classes, remove deprecated classes. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/3feb2c2d Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/3feb2c2d Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/3feb2c2d Branch: refs/heads/master Commit: 3feb2c2de1d1d1af96e422b2050e85cb499c39ef Parents: 43919e5 Author: Nick Couchman Authored: Sat Apr 14 11:22:40 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 70 + .../quickconnect/QuickConnectDirectory.java | 71 + .../quickconnect/QuickConnectUserContext.java | 81 3 files changed, 34 insertions(+), 188 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/3feb2c2d/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index d638ff8..6e6f2bc 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -23,7 +23,7 @@ import java.util.Collections; import java.util.Map; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AuthenticatedUser; -import org.apache.guacamole.net.auth.AuthenticationProvider; +import org.apache.guacamole.net.auth.AbstractAuthenticationProvider; import org.apache.guacamole.net.auth.Credentials; import org.apache.guacamole.net.auth.credentials.CredentialsInfo; import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException; @@ -35,7 +35,7 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; * process so that the QuickConnect functionality can be initialized and be used * throughout the web client. */ -public class QuickConnectAuthenticationProvider implements AuthenticationProvider { +public class QuickConnectAuthenticationProvider extends AbstractAuthenticationProvider { /** * userContext for this authentication provider. @@ -48,31 +48,6 @@ public class QuickConnectAuthenticationProvider implements AuthenticationProvide } @Override -public Object getResource() throws GuacamoleException { -return null; -} - -/** - * For QuickConnect, authenticateUser simply returns null because this - * extension is designed to provide only a connection directory to users - * that are already authenticated and not any actual authentication. - * - * @param credentials - * Credentials object passed in from Guacamole login. - * - * @return - * Returns null, which causes the client to move on to the next - * module. - */ -@Override -public AuthenticatedUser authenticateUser(Credentials credentials) -throws GuacamoleException { - -return null; - -} - -@Override public UserContext getUserContext(AuthenticatedUser authenticatedUser) throws GuacamoleException { @@ -80,45 +55,4 @@ public class QuickConnectAuthenticationProvider implements AuthenticationProvide } -@Override -public AuthenticatedUser updateAuthenticatedUser(AuthenticatedUser authenticatedUser, -Credentials credentials) throws GuacamoleException { - -// Simply return the given user, updating nothing -return authenticatedUser; - -} - -@Override -public UserContext updateUserContext(UserContext context, -AuthenticatedUser authorizedUser, Credentials credentials) -throws GuacamoleException { - -// Simply return the given context, updating nothing -return context; - -} - -@Override -public UserContext decorate(UserContext context, -AuthenticatedUser authenticatedUser, Credentials credentials) -throws GuacamoleException { - -// Simply return the given context, decorating nothing -return context; - -} - -@Override -public UserContext redecorate(UserContext decorated, UserContext context, -AuthenticatedUser authenticatedUser, Credentials credentials) -
[26/50] guacamole-client git commit: GUACAMOLE-38: Code cleanup; style, and grammar tweaks.
GUACAMOLE-38: Code cleanup; style, and grammar tweaks. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/cfd16737 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/cfd16737 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/cfd16737 Branch: refs/heads/master Commit: cfd16737916b18ac7e7b8f7cbc154e3a93cd2dad Parents: aabc871 Author: Nick Couchman Authored: Fri Apr 20 21:21:15 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 4 +-- .../quickconnect/QuickConnectDirectory.java | 33 ++-- .../quickconnect/QuickConnectUserContext.java | 23 +++--- .../auth/quickconnect/QuickConnectionGroup.java | 19 ++- .../quickconnect/rest/QuickConnectREST.java | 23 ++ .../auth/quickconnect/utility/QCParser.java | 29 - 6 files changed, 56 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/cfd16737/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 35fa8b7..090c5e7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -25,8 +25,8 @@ import org.apache.guacamole.net.auth.AbstractAuthenticationProvider; import org.apache.guacamole.net.auth.UserContext; /** - * Class providing the necessary hooks into the Guacamole Client authentication - * process so that the QuickConnect functionality can be initialized and be used + * This class provides the necessary hooks into the Guacamole Client authentication + * process so that the QuickConnect functionality can be initialized and used * throughout the web client. */ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationProvider { http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/cfd16737/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index a321f87..30d8683 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -31,7 +31,7 @@ import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.protocol.GuacamoleConfiguration; /** - * Implementation of the Connection Directory, stored + * Implementation of a directory to stored Connection objects * completely in-memory. */ public class QuickConnectDirectory extends SimpleDirectory { @@ -58,14 +58,12 @@ public class QuickConnectDirectory extends SimpleDirectory { private AtomicInteger connectionId; /** - * Creates a new QuickConnectDirectory which provides access to the - * connections contained within the given Map. + * Creates a new QuickConnectDirectory with the default + * empty Map for Connection objects, and the specified + * ConnectionGroup at the root of the directory. * - * @param connections - * A Map of all connections that should be present in this - * connection directory. * @param rootGroup - * A group that should be at the base of this directory. + * A group that should be at the root of this directory. */ public QuickConnectDirectory(ConnectionGroup rootGroup) { this.rootGroup = (QuickConnectionGroup)rootGroup; @@ -74,11 +72,12 @@ public class QuickConnectDirectory extends SimpleDirectory { } /** - * Returns the current counter and then increments it. + * Returns the current connection identifier counter and + * then increments it. * * @return - * An Integer representing the next available connection
[09/50] guacamole-client git commit: GUACAMOLE-38: Fix parameter name to sometihng more fitting to its function.
GUACAMOLE-38: Fix parameter name to sometihng more fitting to its function. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/2113d1aa Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/2113d1aa Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/2113d1aa Branch: refs/heads/staging/1.0.0 Commit: 2113d1aa96cc5595108adbd30f94b59c9c023825 Parents: 6c23556 Author: Nick Couchman Authored: Fri Mar 16 14:37:05 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/2113d1aa/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index ce1fd1f..00c5044 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -86,7 +86,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { * QuickConnection connection, after setting the identifier * and parent object. * - * @param object + * @param connection * The QuickConnection object to add to the tree. * * @return @@ -96,17 +96,17 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { * If an error is encountered adding the object to the * directory. */ -public String put(QuickConnection object) throws GuacamoleException { +public String put(QuickConnection connection) throws GuacamoleException { // Get the next connection ID. String connectionId = getNextConnectionID().toString(); // Set up identifier and parent on object. -object.setIdentifier(connectionId); -object.setParentIdentifier(ROOT_IDENTIFIER); +connection.setIdentifier(connectionId); +connection.setParentIdentifier(ROOT_IDENTIFIER); // Add connection to the directory -putConnection(object); +putConnection(connection); // Add connection to the tree this.rootGroup.addConnectionIdentifier(connectionId);
[19/50] guacamole-client git commit: GUACAMOLE-38: Remove unnecessary style element.
GUACAMOLE-38: Remove unnecessary style element. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/add78b9c Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/add78b9c Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/add78b9c Branch: refs/heads/staging/1.0.0 Commit: add78b9cdb29ecf6469dce303a7d9974a3a7e677 Parents: fb5d272 Author: Nick Couchman Authored: Sat Mar 24 22:02:03 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../src/main/resources/styles/quickconnect.css | 4 1 file changed, 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/add78b9c/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css index 49a407b..ee0c2f5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/styles/quickconnect.css @@ -38,10 +38,6 @@ box-sizing: border-box; } -.quickconnect-field input[type="submit"] { -display: none !important; -} - .quickconnect-button { clear: both; float: right;
[15/50] guacamole-client git commit: GUACAMOLE-38: Make class public for consistency with other classes.
GUACAMOLE-38: Make class public for consistency with other classes. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/da363f84 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/da363f84 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/da363f84 Branch: refs/heads/staging/1.0.0 Commit: da363f845e9d20be2d99c9b8355462570f0df7f9 Parents: 8ed356a Author: Nick Couchman Authored: Sat Mar 24 22:11:24 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectConnectionGroup.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/da363f84/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java index 4faab1c..2f37e08 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java @@ -35,7 +35,7 @@ import org.apache.guacamole.protocol.GuacamoleClientInformation; * for temporarily storing the QuickConnections created by * users. */ -class QuickConnectConnectionGroup extends AbstractConnectionGroup { +public class QuickConnectConnectionGroup extends AbstractConnectionGroup { /** * The connection identifiers for this group.
[49/50] guacamole-client git commit: GUACAMOLE-38: Remove default protocol and port, throw errors if not specified.
GUACAMOLE-38: Remove default protocol and port, throw errors if not specified. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/8c130215 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/8c130215 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/8c130215 Branch: refs/heads/staging/1.0.0 Commit: 8c130215f49c862819b3dfca219403db296a3a18 Parents: 84e71a0 Author: Nick Couchman Authored: Mon May 21 09:56:50 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java| 17 - 1 file changed, 4 insertions(+), 13 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/8c130215/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 60b4b9c..2810f1d 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -42,17 +42,6 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; public class QCParser { /** - * The default protocol to use if one is not provided in - * the incoming URI. - */ -public static final String DEFAULT_URI_PROTOCOL = "ssh"; - -/** - * The default host to use if one is not defined. - */ -public static final String DEFAULT_URI_HOST = "localhost"; - -/** * The regex to use to split username and password. */ private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):?(.*)"); @@ -89,6 +78,8 @@ public class QCParser { URI qcUri; try { qcUri = new URI(uri); +if (!qcUri.isAbsolute()) +throw new GuacamoleClientException("URI must be absolute."); } catch (URISyntaxException e) { throw new GuacamoleClientException("Invalid URI Syntax", e); @@ -108,7 +99,7 @@ public class QCParser { if (protocol != null && !protocol.isEmpty()) qcConfig.setProtocol(protocol); else -qcConfig.setProtocol(DEFAULT_URI_PROTOCOL); +throw new GuacamoleClientException("No protocol specified."); // Check for provided port number if (port > 0) @@ -118,7 +109,7 @@ public class QCParser { if (host != null && !host.isEmpty()) qcConfig.setParameter("hostname", host); else -qcConfig.setParameter("hostname", DEFAULT_URI_HOST); +throw new GuacamoleClientException("No host specified."); // Look for extra query parameters and parse them out. if (query != null && !query.isEmpty()) {
[02/50] guacamole-client git commit: GUACAMOLE-38: Style and typo fix-ups.
GUACAMOLE-38: Style and typo fix-ups. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6c235565 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6c235565 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6c235565 Branch: refs/heads/staging/1.0.0 Commit: 6c235565b0d1c4c39576fad37de345669f118af8 Parents: 039c512 Author: Nick Couchman Authored: Sun Feb 18 21:10:49 2018 -0500 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnectAuthenticationProvider.java | 2 +- .../auth/quickconnect/QuickConnectConnectionGroup.java| 2 ++ .../guacamole/auth/quickconnect/QuickConnectDirectory.java| 6 +++--- .../guacamole/auth/quickconnect/QuickConnectUserContext.java | 1 + .../apache/guacamole/auth/quickconnect/QuickConnection.java | 2 ++ .../guacamole/auth/quickconnect/rest/QuickConnectREST.java| 7 +++ .../apache/guacamole/auth/quickconnect/utility/QCParser.java | 2 +- 7 files changed, 13 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c235565/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index a94c7df..f725bdf 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -55,7 +55,7 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv * @param credentials * Credentials object passed in from Guacamole login. * - * @returns + * @return * Returns null, which causes the client to move on to the next * module. */ http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c235565/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java index 5abf0be..4faab1c 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectConnectionGroup.java @@ -48,6 +48,7 @@ class QuickConnectConnectionGroup extends AbstractConnectionGroup { * * @param name * The name of the QuickConnectConnectionGroup. + * * @param identifier * The identifier of the QuickConnectConnectionGroup. */ @@ -67,6 +68,7 @@ class QuickConnectConnectionGroup extends AbstractConnectionGroup { * * @param identifier * The identifier of the connection to add to the group. + * * @return * The String identifier of the connection if the add * operation was successful; otherwise null. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c235565/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 5c9606d..ce1fd1f 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -66,7 +66,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { /** * Returns the current counter and then increments it. * - * @returns + * @return * An Integer representing the next available connection * ID to get used when addi
[06/50] guacamole-client git commit: GUACAMOLE-38: Brush up comments and removed some extra code.
GUACAMOLE-38: Brush up comments and removed some extra code. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6c71f4dd Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6c71f4dd Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6c71f4dd Branch: refs/heads/staging/1.0.0 Commit: 6c71f4ddb3b7863864f1081b178acccbb7e9fe0d Parents: 8fa0cea Author: Nick Couchman Authored: Sat Mar 24 20:37:19 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml | 7 --- .../quickconnect/QuickConnectAuthenticationProvider.java | 4 .../guacamole/auth/quickconnect/utility/QCParser.java| 11 --- 3 files changed, 12 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c71f4dd/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index 87ee7bd..717f42c 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -187,9 +187,10 @@ -com.sun.jersey -jersey-server -1.17.1 +javax.ws.rs +jsr311-api +1.1.1 +provided http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c71f4dd/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index f725bdf..c809709 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -63,10 +63,6 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv public AuthenticatedUser authenticateUser(Credentials credentials) throws GuacamoleException { -String username = credentials.getUsername(); -if (username == null || username.isEmpty()) -throw new GuacamoleInvalidCredentialsException("You must login.", CredentialsInfo.USERNAME_PASSWORD); - return null; } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6c71f4dd/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 05b892f..3de9e80 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -27,10 +27,15 @@ import org.apache.guacamole.GuacamoleClientException; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.protocol.GuacamoleConfiguration; +/** + * A utility class to parse out a URI into the settings necessary + * to create and establish a Guacamole connection. + */ public class QCParser { /** - * The default protocol to parse to if one is undefined. + * The default protocol to parse to if one is provided in + * the incoming URI.. */ public static final String DEFAULT_URI_PROTOCOL = "ssh"; @@ -71,7 +76,7 @@ public class QCParser { } String protocol = qcUri.getScheme(); String host = qcUri.getHost(); -Integer port = qcUri.getPort(); +int port = qcUri.getPort(); String userInfo = qcUri.getUserInfo(); String query = qcUri.getQuery(); String username = null; @@ -101,7 +106,7 @@ public class QCParser { GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); qcConfig.setProtocol(protocol); qcConfig.setParameter("hostname",host); -qcConfig.setParameter("port", port.toString()); +qcConfig.setParameter("port", In
[25/50] guacamole-client git commit: GUACAMOLE-38: Tweak to regex and correct behavior of matcher.
GUACAMOLE-38: Tweak to regex and correct behavior of matcher. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/43919e56 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/43919e56 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/43919e56 Branch: refs/heads/staging/1.0.0 Commit: 43919e56239bfad26908d4eb257b459fe5818121 Parents: 16130b3 Author: Nick Couchman Authored: Sun Mar 25 15:02:16 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../apache/guacamole/auth/quickconnect/utility/QCParser.java | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/43919e56/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 6bd0435..d67d7ef 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -49,7 +49,7 @@ public class QCParser { /** * The regex to use to split username and password. */ -private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):(.*)"); +private static final Pattern userinfoPattern = Pattern.compile("(^[^:]+):?(.*)"); /** * The regex group of the username. @@ -107,8 +107,10 @@ public class QCParser { if (userInfo != null && !userInfo.equals("")) { Matcher userinfoMatcher = userinfoPattern.matcher(userInfo); -username = userinfoMatcher.group(USERNAME_GROUP); -password = userinfoMatcher.group(PASSWORD_GROUP); +if (userinfoMatcher.matches()) { +username = userinfoMatcher.group(USERNAME_GROUP); +password = userinfoMatcher.group(PASSWORD_GROUP); +} }
[17/50] guacamole-client git commit: GUACAMOLE-38: Quick fix-up for userContext object in AuthenticationProvider
GUACAMOLE-38: Quick fix-up for userContext object in AuthenticationProvider Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/bb127c55 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/bb127c55 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/bb127c55 Branch: refs/heads/staging/1.0.0 Commit: bb127c55d2226651622c9bb2b6e1b6fb623bec46 Parents: d608643 Author: Nick Couchman Authored: Sun Apr 15 22:58:19 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../auth/quickconnect/QuickConnectAuthenticationProvider.java | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/bb127c55/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 66c42e7..5223793 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -45,7 +45,11 @@ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationPr public UserContext getUserContext(AuthenticatedUser authenticatedUser) throws GuacamoleException { -return new QuickConnectUserContext(this, authenticatedUser.getIdentifier()); +if (userContext == null) +userContext = new QuickConnectUserContext(this, +authenticatedUser.getIdentifier()); + +return userContext; }
[45/50] guacamole-client git commit: GUACAMOLE-38: Add unit tests for the userInfo parser and the getConfiguration method.
GUACAMOLE-38: Add unit tests for the userInfo parser and the getConfiguration method. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/27f4ad01 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/27f4ad01 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/27f4ad01 Branch: refs/heads/staging/1.0.0 Commit: 27f4ad01f5525b695ed9fbc651f04e8205b8d8b6 Parents: aafc435 Author: Nick Couchman Authored: Mon May 14 10:46:49 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../auth/quickconnect/utility/QCParserTest.java | 62 1 file changed, 62 insertions(+) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/27f4ad01/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java index 5567ea3..8a4ed1b 100644 --- a/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java +++ b/extensions/guacamole-auth-quickconnect/src/test/java/org/apache/guacamole/auth/quickconnect/utility/QCParserTest.java @@ -22,8 +22,11 @@ package org.apache.guacamole.auth.quickconnect.utility; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; +import org.apache.guacamole.GuacamoleException; +import org.apache.guacamole.protocol.GuacamoleConfiguration; import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; /** * Class to test methods in the QCParser utility class. @@ -46,4 +49,63 @@ public class QCParserTest { } +/** + * Verify that the parseUserInfo() method functions as designed. + */ +@Test +public void testParseUserInfo() throws UnsupportedEncodingException { + +Map userInfoMap; + +userInfoMap = QCParser.parseUserInfo("guacuser:secretpw"); +assertEquals("guacuser", userInfoMap.get("username")); +assertEquals("secretpw", userInfoMap.get("password")); + + +userInfoMap = QCParser.parseUserInfo("guacuser"); +assertEquals("guacuser", userInfoMap.get("username")); +assertFalse(userInfoMap.containsKey("password")); + +userInfoMap = QCParser.parseUserInfo("guacuser:P%40ssw0rd%21"); +assertEquals("guacuser", userInfoMap.get("username")); +assertEquals("P@ssw0rd!", userInfoMap.get("password")); + +userInfoMap = QCParser.parseUserInfo("domain%5cguacuser:domain%2fpassword"); +assertEquals("domain\\guacuser", userInfoMap.get("username")); +assertEquals("domain/password", userInfoMap.get("password")); + +} + +/** + * Verify that the getConfiguration() method returns the expected + * GuacamoleConfiguration object. + */ +@Test +public void testGetConfiguration() throws GuacamoleException { + +String uri1 = "ssh://guacuser:guacpassword@hostname1.domain.local/?param1=value1¶m2=value2"; +GuacamoleConfiguration config1 = QCParser.getConfiguration(uri1); +assertEquals("ssh", config1.getProtocol()); +assertEquals("hostname1.domain.local", config1.getParameter("hostname")); +assertEquals("guacuser", config1.getParameter("username")); +assertEquals("guacpassword", config1.getParameter("password")); +assertEquals("value1", config1.getParameter("param1")); +assertEquals("value2", config1.getParameter("param2")); + +String uri2 = "rdp://domain%5cguacuser:adpassword...@windows1.domain.tld/?enable-sftp=true"; +GuacamoleConfiguration config2 = QCParser.getConfiguration(uri2); +assertEquals("rdp", config2.getProtocol()); +assertEquals("windows1.domain.tld", config2.getParameter("hostname")); +assertEquals("domain\\guacuser", config2.getParameter("username")); +assertEquals("adPassword123", config2.getParameter("password")); +assertEquals("true", config2.getParameter("enable-sftp")); + +String uri3 = "vnc://mirror1.example.com:5910/"; +GuacamoleConfiguration config3 = QCParser.getConfiguration(uri3); +assertEquals("vnc", config3.getProtocol()); +assertEquals("mirror1.example.com", config3.getParameter("hostname")); +assertEquals("5910", config3.getParameter("port")); + +} + }
[10/50] guacamole-client git commit: GUACAMOLE-38: Remove unnecessary GUICE/Inject stuff.
GUACAMOLE-38: Remove unnecessary GUICE/Inject stuff. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/c994c5a9 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/c994c5a9 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/c994c5a9 Branch: refs/heads/staging/1.0.0 Commit: c994c5a9b429d6acec40d7f894b0a6a5749c50bd Parents: b31b09a Author: Nick Couchman Authored: Tue Apr 17 21:44:11 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml | 12 -- .../src/licenses/LICENSE| 18 -- .../src/licenses/bundled/guice-3.0/COPYING | 202 --- .../bundled/javax.inject-1/LICENSE-2.0.txt | 202 --- ...uickConnectAuthenticationProviderModule.java | 81 5 files changed, 515 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c994c5a9/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index 717f42c..e8d0440 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -193,18 +193,6 @@ provided - - -com.google.inject -guice -3.0 - - -com.google.inject.extensions -guice-multibindings -3.0 - - http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c994c5a9/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE index c6cbf77..e8788bb 100644 --- a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE +++ b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE @@ -219,21 +219,3 @@ AOP Alliance (http://aopalliance.sourceforge.net/) License(s): Public Domain (bundled/aopalliance-1.0/LICENSE) - -Google Guice (https://github.com/google/guice) --- - -Version: 3.0 -From: 'Google Inc.' (http://www.google.com/) -License(s): -Apache v2.0 (bundled/guice-3.0/COPYING) - - -JSR-330 / Dependency Injection for Java (http://code.google.com/p/atinject/) - - -Version: 1 -From: 'JSR-330 Expert Group' (https://jcp.org/en/jsr/detail?id=330) -License(s): -Apache v2.0 (bundled/javax.inject-1/LICENSE-2.0.txt) - http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/c994c5a9/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING b/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING deleted file mode 100644 index d645695..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/guice-3.0/COPYING +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 -http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from me
[23/50] guacamole-client git commit: GUACAMOLE-38: Avoid unnuecessary type-casting.
GUACAMOLE-38: Avoid unnuecessary type-casting. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/9ab50a23 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/9ab50a23 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/9ab50a23 Branch: refs/heads/staging/1.0.0 Commit: 9ab50a239c818a21f3a39ddeb84576939d721fb3 Parents: c50d372 Author: Nick Couchman Authored: Sat Mar 24 22:34:56 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../guacamole/auth/quickconnect/QuickConnectUserContext.java | 4 ++-- .../guacamole/auth/quickconnect/rest/QuickConnectREST.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/9ab50a23/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index d9eb389..06ef630 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -80,7 +80,7 @@ public class QuickConnectUserContext implements UserContext { * The Directory with access to all connections within the root group * associated with this UserContext. */ -private final Directory connectionDirectory; +private final QuickConnectDirectory connectionDirectory; /** * The root connection group. @@ -157,7 +157,7 @@ public class QuickConnectUserContext implements UserContext { } @Override -public Directory getConnectionDirectory() +public QuickConnectDirectory getConnectionDirectory() throws GuacamoleException { return connectionDirectory; } http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/9ab50a23/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index aef5ca3..d11bd06 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -69,7 +69,7 @@ public class QuickConnectREST { public QuickConnectREST(QuickConnectUserContext userContext) throws GuacamoleException { this.userContext = userContext; -this.directory = (QuickConnectDirectory)this.userContext.getConnectionDirectory(); +this.directory = this.userContext.getConnectionDirectory(); } /**
[35/50] guacamole-client git commit: GUACAMOLE-38: REST class only needs directory, not entire userContext object.
GUACAMOLE-38: REST class only needs directory, not entire userContext object. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/d9751f20 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/d9751f20 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/d9751f20 Branch: refs/heads/staging/1.0.0 Commit: d9751f20d0427379e247af803311081f0dcc27cd Parents: 963593e Author: Nick Couchman Authored: Thu Apr 19 06:29:06 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/QuickConnectUserContext.java | 2 +- .../auth/quickconnect/rest/QuickConnectREST.java | 15 --- 2 files changed, 5 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d9751f20/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 4382659..d2315e5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -114,7 +114,7 @@ public class QuickConnectUserContext extends AbstractUserContext { @Override public Object getResource() throws GuacamoleException { -return new QuickConnectREST(this); +return new QuickConnectREST(connectionDirectory); } @Override http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d9751f20/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java index 48dec4c..4b0b9fd 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/rest/QuickConnectREST.java @@ -26,7 +26,6 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.auth.quickconnect.QuickConnectDirectory; -import org.apache.guacamole.auth.quickconnect.QuickConnectUserContext; import org.apache.guacamole.auth.quickconnect.utility.QCParser; /** @@ -42,25 +41,19 @@ public class QuickConnectREST { private QuickConnectDirectory directory; /** - * The UserContext object for this REST endpoint. - */ -private QuickConnectUserContext userContext; - -/** * Construct a new QuickConnectREST class, taking in the UserContext * object that calls this constructor. * - * @param userContext - * The UserContext object associated with this REST endpoint + * @param directory + * The ConnectionDirectory object associated with this REST endpoint * * @throws GuacamoleException * If the UserContext is unavailable or the directory object * cannot be retrieved. */ -public QuickConnectREST(QuickConnectUserContext userContext) +public QuickConnectREST(QuickConnectDirectory directory) throws GuacamoleException { -this.userContext = userContext; -this.directory = this.userContext.getConnectionDirectory(); +this.directory = directory; } /**
[38/50] guacamole-client git commit: GUACAMOLE-38: Code cleanup; style, and grammar tweaks.
GUACAMOLE-38: Code cleanup; style, and grammar tweaks. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/cfd16737 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/cfd16737 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/cfd16737 Branch: refs/heads/staging/1.0.0 Commit: cfd16737916b18ac7e7b8f7cbc154e3a93cd2dad Parents: aabc871 Author: Nick Couchman Authored: Fri Apr 20 21:21:15 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 4 +-- .../quickconnect/QuickConnectDirectory.java | 33 ++-- .../quickconnect/QuickConnectUserContext.java | 23 +++--- .../auth/quickconnect/QuickConnectionGroup.java | 19 ++- .../quickconnect/rest/QuickConnectREST.java | 23 ++ .../auth/quickconnect/utility/QCParser.java | 29 - 6 files changed, 56 insertions(+), 75 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/cfd16737/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 35fa8b7..090c5e7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -25,8 +25,8 @@ import org.apache.guacamole.net.auth.AbstractAuthenticationProvider; import org.apache.guacamole.net.auth.UserContext; /** - * Class providing the necessary hooks into the Guacamole Client authentication - * process so that the QuickConnect functionality can be initialized and be used + * This class provides the necessary hooks into the Guacamole Client authentication + * process so that the QuickConnect functionality can be initialized and used * throughout the web client. */ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationProvider { http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/cfd16737/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index a321f87..30d8683 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -31,7 +31,7 @@ import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.protocol.GuacamoleConfiguration; /** - * Implementation of the Connection Directory, stored + * Implementation of a directory to stored Connection objects * completely in-memory. */ public class QuickConnectDirectory extends SimpleDirectory { @@ -58,14 +58,12 @@ public class QuickConnectDirectory extends SimpleDirectory { private AtomicInteger connectionId; /** - * Creates a new QuickConnectDirectory which provides access to the - * connections contained within the given Map. + * Creates a new QuickConnectDirectory with the default + * empty Map for Connection objects, and the specified + * ConnectionGroup at the root of the directory. * - * @param connections - * A Map of all connections that should be present in this - * connection directory. * @param rootGroup - * A group that should be at the base of this directory. + * A group that should be at the root of this directory. */ public QuickConnectDirectory(ConnectionGroup rootGroup) { this.rootGroup = (QuickConnectionGroup)rootGroup; @@ -74,11 +72,12 @@ public class QuickConnectDirectory extends SimpleDirectory { } /** - * Returns the current counter and then increments it. + * Returns the current connection identifier counter and + * then increments it. * * @return - * An Integer representing the next available conn
[03/50] guacamole-client git commit: GUACAMOLE-38: Update to 0.9.14 and remove incubating references.
GUACAMOLE-38: Update to 0.9.14 and remove incubating references. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/039c5120 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/039c5120 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/039c5120 Branch: refs/heads/staging/1.0.0 Commit: 039c5120dfcba506141b6be0a34c154e8537ce2a Parents: fc63007 Author: Nick Couchman Authored: Mon Jan 1 16:53:31 2018 -0500 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- extensions/guacamole-auth-quickconnect/pom.xml| 6 +++--- .../guacamole-auth-quickconnect/src/licenses/DISCLAIMER | 7 --- .../src/main/resources/guac-manifest.json | 2 +- 3 files changed, 4 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/039c5120/extensions/guacamole-auth-quickconnect/pom.xml -- diff --git a/extensions/guacamole-auth-quickconnect/pom.xml b/extensions/guacamole-auth-quickconnect/pom.xml index fdf04c7..87ee7bd 100644 --- a/extensions/guacamole-auth-quickconnect/pom.xml +++ b/extensions/guacamole-auth-quickconnect/pom.xml @@ -26,9 +26,9 @@ org.apache.guacamole guacamole-auth-quickconnect jar -0.9.13-incubating +0.9.14 guacamole-auth-quickconnect -http://guacamole.incubator.apache.org/ +http://guacamole.apache.org/ UTF-8 @@ -181,7 +181,7 @@ org.apache.guacamole guacamole-ext -0.9.13-incubating +0.9.14 provided http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/039c5120/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER b/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER deleted file mode 100644 index 1a9c3be..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/DISCLAIMER +++ /dev/null @@ -1,7 +0,0 @@ -Apache Guacamole is an effort undergoing incubation at The Apache Software -Foundation (ASF). Incubation is required of all newly accepted projects until a -further review indicates that the infrastructure, communications, and decision -making process have stabilized in a manner consistent with other successful ASF -projects. While incubation status is not necessarily a reflection of the -completeness or stability of the code, it does indicate that the project has -yet to be fully endorsed by the ASF. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/039c5120/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json index 46fad88..62dd3bb 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/guac-manifest.json @@ -1,5 +1,5 @@ { -"guacamoleVersion" : "0.9.13-incubating", +"guacamoleVersion" : "0.9.14", "name" : "Adhoc Guacamole Connections", "namespace": "quickconnect",
[11/50] guacamole-client git commit: GUACAMOLE-38: Minor documentation tweaks.
GUACAMOLE-38: Minor documentation tweaks. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/6a922a78 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/6a922a78 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/6a922a78 Branch: refs/heads/staging/1.0.0 Commit: 6a922a781139e157cfa7cf5889e6e2f1e688693a Parents: 12d92d2 Author: Nick Couchman Authored: Tue Apr 17 17:30:52 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- extensions/guacamole-auth-quickconnect/src/licenses/NOTICE | 2 +- .../org/apache/guacamole/auth/quickconnect/utility/QCParser.java | 3 +-- .../src/main/resources/controllers/quickconnectController.js | 4 3 files changed, 6 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6a922a78/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE b/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE index 47f2b4c..97e6130 100644 --- a/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE +++ b/extensions/guacamole-auth-quickconnect/src/licenses/NOTICE @@ -1,5 +1,5 @@ Apache Guacamole -Copyright 2017 The Apache Software Foundation +Copyright 2018 The Apache Software Foundation This product includes software developed at The Apache Software Foundation (http://www.apache.org/). http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6a922a78/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index d67d7ef..be157dc 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -148,8 +148,7 @@ public class QCParser { * the name. * * @return - * The String value of the name that is generated, or - * null if no config is provided. + * The String value of the name that is generated. * * @throws GuacamoleException * If an error occurs getting items in the configuration. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/6a922a78/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js index 0313730..640034f 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js +++ b/extensions/guacamole-auth-quickconnect/src/main/resources/controllers/quickconnectController.js @@ -43,6 +43,10 @@ angular.module('guacQuickConnect').controller('quickconnectController', ['$scope } }; +/** + * The URI that will be passed in to the extension to create + * the connection. + */ $scope.uri = null; /**
[13/50] guacamole-client git commit: GUACAMOLE-38: Get rid of unnecessary userContext initialization.
GUACAMOLE-38: Get rid of unnecessary userContext initialization. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/b31b09a2 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/b31b09a2 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/b31b09a2 Branch: refs/heads/staging/1.0.0 Commit: b31b09a2f5b0562cf6ed971660c319a833b735c7 Parents: 6a922a7 Author: Nick Couchman Authored: Tue Apr 17 21:36:38 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 12 ++-- 1 file changed, 2 insertions(+), 10 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/b31b09a2/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 5223793..35fa8b7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -31,11 +31,6 @@ import org.apache.guacamole.net.auth.UserContext; */ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationProvider { -/** - * userContext for this authentication provider. - */ -private UserContext userContext; - @Override public String getIdentifier() { return "quickconnect"; @@ -45,11 +40,8 @@ public class QuickConnectAuthenticationProvider extends AbstractAuthenticationPr public UserContext getUserContext(AuthenticatedUser authenticatedUser) throws GuacamoleException { -if (userContext == null) -userContext = new QuickConnectUserContext(this, -authenticatedUser.getIdentifier()); - -return userContext; +return new QuickConnectUserContext(this, +authenticatedUser.getIdentifier()); }
[37/50] guacamole-client git commit: GUACAMOLE-38: Remove bundled aopalliance license.
GUACAMOLE-38: Remove bundled aopalliance license. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/66294518 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/66294518 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/66294518 Branch: refs/heads/staging/1.0.0 Commit: 6629451892f7ae160a0cfdea15b309b80da744fe Parents: cfd1673 Author: Nick Couchman Authored: Sat Apr 28 08:28:03 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../src/licenses/LICENSE | 19 --- .../src/licenses/bundled/README | 4 .../src/licenses/bundled/aopalliance-1.0/LICENSE | 4 3 files changed, 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/66294518/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE index e8788bb..d645695 100644 --- a/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE +++ b/extensions/guacamole-auth-quickconnect/src/licenses/LICENSE @@ -200,22 +200,3 @@ 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. - - -== - -APACHE GUACAMOLE SUBCOMPONENTS - -Apache Guacamole includes a number of subcomponents with separate copyright -notices and license terms. Your use of these subcomponents is subject to the -terms and conditions of the following licenses. - - -AOP Alliance (http://aopalliance.sourceforge.net/) --- - -Version: 1.0 -From: 'AOP Alliance' (http://aopalliance.sourceforge.net/members.html) -License(s): -Public Domain (bundled/aopalliance-1.0/LICENSE) - http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/66294518/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README b/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README deleted file mode 100644 index 47ba19d..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/README +++ /dev/null @@ -1,4 +0,0 @@ -Apache Guacamole includes a number of subcomponents with separate copyright -notices and license terms. Your use of these subcomponents is subject to the -terms and conditions of their respective licenses, included within this -directory for reference. http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/66294518/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE -- diff --git a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE b/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE deleted file mode 100644 index 8e0e378..000 --- a/extensions/guacamole-auth-quickconnect/src/licenses/bundled/aopalliance-1.0/LICENSE +++ /dev/null @@ -1,4 +0,0 @@ -From http://aopalliance.sourceforge.net/: - -LICENCE: all the source code provided by AOP Alliance is Public Domain. -
[41/50] guacamole-client git commit: GUACAMOLE-38: Implement QuickConnectException for providing exceptions to the user.
GUACAMOLE-38: Implement QuickConnectException for providing exceptions to the user. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/73020135 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/73020135 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/73020135 Branch: refs/heads/staging/1.0.0 Commit: 730201358edb26ee27ab90f808fa72f146e0454b Parents: 8c13021 Author: Nick Couchman Authored: Mon May 21 10:54:14 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:53 2018 -0400 -- .../quickconnect/QuickConnectException.java | 86 .../auth/quickconnect/utility/QCParser.java | 13 ++- .../src/main/resources/translations/en.json | 6 ++ 3 files changed, 101 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/73020135/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java new file mode 100644 index 000..6e4d5b9 --- /dev/null +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectException.java @@ -0,0 +1,86 @@ +/* + * 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.auth.quickconnect; + +import org.apache.guacamole.GuacamoleClientException; +import org.apache.guacamole.language.Translatable; +import org.apache.guacamole.language.TranslatableMessage; + +/** + * An exception that is thrown by this extension when an error occurs + * attempting to create and establish a connection with a user-provided + * URI. + */ +public class QuickConnectException extends GuacamoleClientException +implements Translatable { + +/** + * A message that can be passed through the translation service + * to provide information about the error that occurred. + */ +private final TranslatableMessage translatableMessage; + +/** + * Create a QuickConnectException with the given message and translationKey. + * The message will not be passed through the translation system; the + * translationKey will be passed through the translation system. Both should + * describe the error. + * + * @param message + * A string describing the error that occurred when trying to create + * or establish the connection. This will not be passed through the + * translation system. + * + * @param translationKey + * A key known to the translation system describing the error that + * occurred when trying to create or establish the connection. + * This will be passed through the translation system to provide + * a localized version of the message. + */ +public QuickConnectException(String message, String translationKey) { +super(message); +this.translatableMessage = new TranslatableMessage(translationKey); +} + +/** + * Create a new QuickConnectException given the human-readable message, + * which will not be passed through the translation system, and the + * translatableMessage, which will be passed through the translation system. + * Both parameters should describe the error preventing the connection + * from being created or established. + * + * @param message + * The human-readable message describing the error, which will not + * be passed through the translation system. + * + * @param translatableMessage + * The human-readable message describing the error, which will be + * passed through the translation system. + */ +public QuickConnectExcepti
[08/50] guacamole-client git commit: GUACAMOLE-38: Extend SimpleConnection instead of copying code manually.
GUACAMOLE-38: Extend SimpleConnection instead of copying code manually. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/a3d85122 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/a3d85122 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/a3d85122 Branch: refs/heads/staging/1.0.0 Commit: a3d851228eb523782ce20965be4391645d86f014 Parents: 2113d1a Author: Nick Couchman Authored: Fri Mar 16 14:54:05 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnection.java | 89 ++-- 1 file changed, 5 insertions(+), 84 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/a3d85122/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java index a2f3814..2603f17 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java @@ -36,6 +36,7 @@ import org.apache.guacamole.net.auth.AbstractConnection; import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.net.auth.ConnectionRecord; import org.apache.guacamole.net.auth.GuacamoleProxyConfiguration; +import org.apache.guacamole.net.auth.simple.SimpleConnection; import org.apache.guacamole.protocol.ConfiguredGuacamoleSocket; import org.apache.guacamole.protocol.GuacamoleClientInformation; import org.apache.guacamole.protocol.GuacamoleConfiguration; @@ -43,12 +44,7 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; /** * A type of Connection specific to this authentication extension. */ -public class QuickConnection extends AbstractConnection { - -/** - * Backing configuration, containing all sensitive information. - */ -private GuacamoleConfiguration config; +public class QuickConnection extends SimpleConnection { /** * Number of active connections. @@ -80,12 +76,7 @@ public class QuickConnection extends AbstractConnection { public QuickConnection(String name, String identifier, GuacamoleConfiguration config) { -setName(name); - -setIdentifier(identifier); - -setConfiguration(config); -this.config = config; +super(name, identifier, config); this.activeConnections = 0; @@ -101,81 +92,11 @@ public class QuickConnection extends AbstractConnection { */ public QuickConnection(Connection object) { -setName(object.getName()); -setIdentifier(object.getIdentifier()); + super(object.getName(),object.getIdentifier(),object.getConfiguration()); + setParentIdentifier(object.getParentIdentifier()); -setConfiguration(object.getConfiguration()); -this.config = object.getConfiguration(); this.activeConnections = 0; } -@Override -public int getActiveConnections() { -return activeConnections; -} - -@Override -public Map getAttributes() { -return Collections.emptyMap(); -} - -@Override -public void setAttributes(Map attributes) { -// Do nothing - there are no attributes -} - -@Override -public GuacamoleTunnel connect(GuacamoleClientInformation info) -throws GuacamoleException { - -// Retrieve proxy configuration from environment -Environment environment = new LocalEnvironment(); -GuacamoleProxyConfiguration proxyConfig = environment.getDefaultGuacamoleProxyConfiguration(); - -// Get guacd connection parameters -String hostname = proxyConfig.getHostname(); -int port = proxyConfig.getPort(); - -GuacamoleSocket socket; - -// Determine socket type based on required encryption method -switch (proxyConfig.getEncryptionMethod()) { - -// If guacd requires SSL, use it -case SSL: -socket = new ConfiguredGuacamoleSocket( -new SSLGuacamoleSocket(hostname, port), -config, info -); -break; - -// Connect directly via TCP if encryption is not enabled -case NONE: -socket = new ConfiguredGuacamoleSocket( -new InetGuacamoleSocket(hostname, port), -
[01/50] guacamole-client git commit: GUACAMOLE-38: Implement the AuthenticationProvider instead of extending another.
Repository: guacamole-client Updated Branches: refs/heads/staging/1.0.0 2fb377ac8 -> 72bc8c01a GUACAMOLE-38: Implement the AuthenticationProvider instead of extending another. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/fb5d2723 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/fb5d2723 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/fb5d2723 Branch: refs/heads/staging/1.0.0 Commit: fb5d2723bcc7cad1585736e644e367d802082d29 Parents: 5c96cd6 Author: Nick Couchman Authored: Sat Mar 24 21:58:19 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../QuickConnectAuthenticationProvider.java | 53 +--- 1 file changed, 45 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/fb5d2723/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index c809709..d638ff8 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -23,10 +23,10 @@ import java.util.Collections; import java.util.Map; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AuthenticatedUser; +import org.apache.guacamole.net.auth.AuthenticationProvider; import org.apache.guacamole.net.auth.Credentials; import org.apache.guacamole.net.auth.credentials.CredentialsInfo; import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException; -import org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider; import org.apache.guacamole.net.auth.UserContext; import org.apache.guacamole.protocol.GuacamoleConfiguration; @@ -35,7 +35,7 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; * process so that the QuickConnect functionality can be initialized and be used * throughout the web client. */ -public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProvider { +public class QuickConnectAuthenticationProvider implements AuthenticationProvider { /** * userContext for this authentication provider. @@ -47,6 +47,11 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv return "quickconnect"; } +@Override +public Object getResource() throws GuacamoleException { +return null; +} + /** * For QuickConnect, authenticateUser simply returns null because this * extension is designed to provide only a connection directory to users @@ -68,20 +73,52 @@ public class QuickConnectAuthenticationProvider extends SimpleAuthenticationProv } @Override -public Map -getAuthorizedConfigurations(Credentials credentials) -throws GuacamoleException { +public UserContext getUserContext(AuthenticatedUser authenticatedUser) +throws GuacamoleException { -return Collections.emptyMap(); +return new QuickConnectUserContext(this, authenticatedUser.getIdentifier()); } @Override -public UserContext getUserContext(AuthenticatedUser authenticatedUser) +public AuthenticatedUser updateAuthenticatedUser(AuthenticatedUser authenticatedUser, +Credentials credentials) throws GuacamoleException { + +// Simply return the given user, updating nothing +return authenticatedUser; + +} + +@Override +public UserContext updateUserContext(UserContext context, +AuthenticatedUser authorizedUser, Credentials credentials) throws GuacamoleException { -return new QuickConnectUserContext(this, authenticatedUser.getIdentifier()); +// Simply return the given context, updating nothing +return context; + +} + +@Override +public UserContext decorate(UserContext context, +AuthenticatedUser authenticatedUser, Credentials credentials) +throws GuacamoleException { + +// Simply return the given context, decorating nothing +return context; } +@Override +public UserContext redecorate(UserContext decorated, UserContext context, +AuthenticatedUser authenticatedUser, Cred
[20/50] guacamole-client git commit: GUACAMOLE-38: Remove lots of extra imports.
GUACAMOLE-38: Remove lots of extra imports. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/d608643b Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/d608643b Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/d608643b Branch: refs/heads/staging/1.0.0 Commit: d608643bb6c890d91edfac5fb70838c264180dde Parents: 3feb2c2 Author: Nick Couchman Authored: Sun Apr 15 22:44:46 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:51 2018 -0400 -- .../QuickConnectAuthenticationProvider.java| 6 -- .../auth/quickconnect/QuickConnectUserContext.java | 10 -- .../auth/quickconnect/QuickConnection.java | 17 - .../auth/quickconnect/rest/QuickConnectREST.java | 9 - 4 files changed, 42 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d608643b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java index 6e6f2bc..66c42e7 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectAuthenticationProvider.java @@ -19,16 +19,10 @@ package org.apache.guacamole.auth.quickconnect; -import java.util.Collections; -import java.util.Map; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.net.auth.AuthenticatedUser; import org.apache.guacamole.net.auth.AbstractAuthenticationProvider; -import org.apache.guacamole.net.auth.Credentials; -import org.apache.guacamole.net.auth.credentials.CredentialsInfo; -import org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException; import org.apache.guacamole.net.auth.UserContext; -import org.apache.guacamole.protocol.GuacamoleConfiguration; /** * Class providing the necessary hooks into the Guacamole Client authentication http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d608643b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java index 60f6ded..60a05e5 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectUserContext.java @@ -19,24 +19,14 @@ package org.apache.guacamole.auth.quickconnect; -import java.util.Collection; import java.util.Collections; import org.apache.guacamole.auth.quickconnect.rest.QuickConnectREST; import org.apache.guacamole.GuacamoleException; -import org.apache.guacamole.form.Form; import org.apache.guacamole.net.auth.AbstractUserContext; -import org.apache.guacamole.net.auth.ActiveConnection; -import org.apache.guacamole.net.auth.ActivityRecord; -import org.apache.guacamole.net.auth.ActivityRecordSet; import org.apache.guacamole.net.auth.AuthenticationProvider; -import org.apache.guacamole.net.auth.Connection; import org.apache.guacamole.net.auth.ConnectionGroup; -import org.apache.guacamole.net.auth.ConnectionRecord; import org.apache.guacamole.net.auth.Directory; -import org.apache.guacamole.net.auth.SharingProfile; import org.apache.guacamole.net.auth.User; -import org.apache.guacamole.net.auth.UserContext; -import org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet; import org.apache.guacamole.net.auth.simple.SimpleDirectory; import org.apache.guacamole.net.auth.simple.SimpleUser; http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d608643b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnection.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/gua
[07/50] guacamole-client git commit: GUACAMOLE-38: Make connection ID incrementing thread-safe.
GUACAMOLE-38: Make connection ID incrementing thread-safe. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/8fa0cea7 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/8fa0cea7 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/8fa0cea7 Branch: refs/heads/staging/1.0.0 Commit: 8fa0cea7936a5740cebf464902f8445dc30120c4 Parents: a3d8512 Author: Nick Couchman Authored: Sun Mar 18 20:42:37 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java| 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/8fa0cea7/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index 00c5044..2e19870 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -20,6 +20,7 @@ package org.apache.guacamole.auth.quickconnect; import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.guacamole.GuacamoleException; import org.apache.guacamole.auth.quickconnect.utility.QCParser; import org.apache.guacamole.net.auth.ConnectionGroup; @@ -46,7 +47,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { /** * The internal counter for connection IDs. */ -private int CONNECTION_ID = 0; +private AtomicInteger connectionId; /** * Creates a new QuickConnectDirectory which provides access to the @@ -61,6 +62,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { public QuickConnectDirectory(Collection connections, ConnectionGroup rootGroup) { super(connections); this.rootGroup = (QuickConnectConnectionGroup)rootGroup; +this.connectionId = new AtomicInteger(); } /** @@ -70,8 +72,8 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { * An Integer representing the next available connection * ID to get used when adding connections. */ -private Integer getNextConnectionID() { -return CONNECTION_ID++; +private int getNextConnectionID() { +return connectionId.getAndIncrement(); } @Override @@ -99,7 +101,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { public String put(QuickConnection connection) throws GuacamoleException { // Get the next connection ID. -String connectionId = getNextConnectionID().toString(); +String connectionId = Integer.toString(getNextConnectionID()); // Set up identifier and parent on object. connection.setIdentifier(connectionId); @@ -132,7 +134,7 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { public String create(GuacamoleConfiguration config) throws GuacamoleException { // Get the next connection ID -String connectionId = getNextConnectionID().toString(); +String connectionId = Integer.toString(getNextConnectionID()); // Generate a name for the configuration String name = QCParser.getName(config);
[05/50] guacamole-client git commit: GUACAMOLE-38: Leave default port to individual protocols.
GUACAMOLE-38: Leave default port to individual protocols. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/5c96cd63 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/5c96cd63 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/5c96cd63 Branch: refs/heads/staging/1.0.0 Commit: 5c96cd63267abf184d9a689f694f0a1e4da453d5 Parents: 6c71f4d Author: Nick Couchman Authored: Sat Mar 24 20:44:02 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../guacamole/auth/quickconnect/utility/QCParser.java | 12 +++- 1 file changed, 3 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/5c96cd63/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index 3de9e80..30121df 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -45,11 +45,6 @@ public class QCParser { public static final String DEFAULT_URI_HOST = "localhost"; /** - * The default port to use if one is not defined. - */ -public static final Integer DEFAULT_URI_PORT = 22; - -/** * Parse out a URI string and get a connection from that string, * or an exception if the parsing fails. * @@ -89,9 +84,6 @@ public class QCParser { if (host == null || host.equals("")) host = DEFAULT_URI_HOST; -if (port == -1 || port < 1) -port = DEFAULT_URI_PORT; - if (query != null && !query.equals("")) paramList = Arrays.asList(query.split("&")); @@ -106,7 +98,9 @@ public class QCParser { GuacamoleConfiguration qcConfig = new GuacamoleConfiguration(); qcConfig.setProtocol(protocol); qcConfig.setParameter("hostname",host); -qcConfig.setParameter("port", Integer.toString(port)); + +if (port > 0) +qcConfig.setParameter("port", Integer.toString(port)); if (username != null) qcConfig.setParameter("username", username);
[04/50] guacamole-client git commit: GUACAMOLE-38: Remove unnecessary code.
GUACAMOLE-38: Remove unnecessary code. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/fc63007e Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/fc63007e Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/fc63007e Branch: refs/heads/staging/1.0.0 Commit: fc63007e59120712ed7c3a96d17ad73b2ce8c3c0 Parents: 74ab18b Author: Nick Couchman Authored: Sat Oct 28 14:40:03 2017 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:50 2018 -0400 -- .../auth/quickconnect/QuickConnectDirectory.java| 12 +--- 1 file changed, 1 insertion(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/fc63007e/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java index d56df95..5c9606d 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/QuickConnectDirectory.java @@ -77,18 +77,8 @@ public class QuickConnectDirectory extends SimpleConnectionDirectory { @Override public void add(Connection object) throws GuacamoleException { -// Get the next connection ID. -String connectionId = getNextConnectionID().toString(); - -// Set up identifier and parent on original object. -object.setIdentifier(connectionId); -object.setParentIdentifier(ROOT_IDENTIFIER); +put(new QuickConnection(object)); -// Add connection to the directory -putConnection(new QuickConnection(object)); - -// Add connection to the tree -this.rootGroup.addConnectionIdentifier(connectionId); } /**
[33/50] guacamole-client git commit: GUACAMOLE-38: Use StringBuilder to gather up name.
GUACAMOLE-38: Use StringBuilder to gather up name. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/d4b7e2b8 Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/d4b7e2b8 Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/d4b7e2b8 Branch: refs/heads/staging/1.0.0 Commit: d4b7e2b8b608eaa8ad8e5a21eed8cd3bd92964e7 Parents: cf241f0 Author: Nick Couchman Authored: Thu Apr 19 05:30:51 2018 -0400 Committer: Nick Couchman Committed: Fri Jun 1 13:40:52 2018 -0400 -- .../auth/quickconnect/utility/QCParser.java | 15 --- 1 file changed, 8 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/d4b7e2b8/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java -- diff --git a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java index ba6e3fd..7d5d7d4 100644 --- a/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java +++ b/extensions/guacamole-auth-quickconnect/src/main/java/org/apache/guacamole/auth/quickconnect/utility/QCParser.java @@ -19,6 +19,7 @@ package org.apache.guacamole.auth.quickconnect.utility; +import java.lang.StringBuilder; import java.net.URI; import java.net.URISyntaxException; import java.util.Arrays; @@ -164,23 +165,23 @@ public class QCParser { String port = config.getParameter("port"); String user = config.getParameter("username"); -String name = ""; +StringBuilder name = new StringBuilder(""); if (protocol != null && !protocol.isEmpty()) -name += protocol + "://"; +name.append(protocol).append("://"); if (user != null && !user.isEmpty()) -name += user + "@"; +name.append(user).append("@"); if (host != null && !host.isEmpty()) -name += host; +name.append(host); if (port != null && !port.isEmpty()) -name += ":" + port; +name.append(":").append(port); -name += "/"; +name.append("/"); -return name; +return name.toString(); } }