You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by mj...@apache.org on 2018/01/30 23:44:47 UTC
[35/50] guacamole-client git commit: GUACAMOLE-197: Move RadiusClient
object to a return value instead of class-level object;
properly clean up RADIUS connections.
GUACAMOLE-197: Move RadiusClient object to a return value instead of class-level object; properly clean up RADIUS connections.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/249ea077
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/249ea077
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/249ea077
Branch: refs/heads/master
Commit: 249ea0776b4ac2fe178a03976252c283f9d05334
Parents: fa820cb
Author: Nick Couchman <vn...@apache.org>
Authored: Sun Jul 16 14:40:49 2017 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Mon Jan 29 17:08:11 2018 -0500
----------------------------------------------------------------------
.../radius/AuthenticationProviderService.java | 6 ----
.../auth/radius/RadiusConnectionService.java | 30 +++++++-------------
2 files changed, 11 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/249ea077/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/AuthenticationProviderService.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/AuthenticationProviderService.java b/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/AuthenticationProviderService.java
index 530de15..eafdf83 100644
--- a/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/AuthenticationProviderService.java
+++ b/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/AuthenticationProviderService.java
@@ -160,9 +160,6 @@ public class AuthenticationProviderService {
logger.debug("Error configuring RADIUS server.", e);
throw new GuacamoleInvalidCredentialsException("Authentication error.", CredentialsInfo.USERNAME_PASSWORD);
}
- finally {
- radiusService.disconnect();
- }
}
// This is a response to a previous challenge, authenticate with that.
@@ -177,9 +174,6 @@ public class AuthenticationProviderService {
logger.debug("Error configuring RADIUS server.", e);
throw new GuacamoleInvalidCredentialsException("Authentication error.", CredentialsInfo.USERNAME_PASSWORD);
}
- finally {
- radiusService.disconnect();
- }
}
// No RadiusPacket is returned, we've encountered an error.
http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/249ea077/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/RadiusConnectionService.java
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/RadiusConnectionService.java b/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/RadiusConnectionService.java
index 22c8d82..9dd39a3 100644
--- a/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/RadiusConnectionService.java
+++ b/extensions/guacamole-auth-radius/src/main/java/org/apache/guacamole/auth/radius/RadiusConnectionService.java
@@ -64,11 +64,6 @@ public class RadiusConnectionService {
/**
- * The RADIUS client;
- */
- private RadiusClient radiusClient;
-
- /**
* Creates a new instance of RadiusClient, configured with parameters
* from guacamole.properties.
*
@@ -76,11 +71,11 @@ public class RadiusConnectionService {
* If an error occurs while parsing guacamole.properties, or if the
* configuration of RadiusClient fails.
*/
- private void createRadiusConnection() {
+ private RadiusClient createRadiusConnection() {
// Create the RADIUS client with the configuration parameters
try {
- radiusClient = new RadiusClient(InetAddress.getByName(confService.getRadiusServer()),
+ return new RadiusClient(InetAddress.getByName(confService.getRadiusServer()),
confService.getRadiusSharedSecret(),
confService.getRadiusAuthPort(),
confService.getRadiusAcctPort(),
@@ -99,6 +94,8 @@ public class RadiusConnectionService {
logger.debug("Failed to communicate with host.", e);
}
+ return null;
+
}
/**
@@ -110,7 +107,8 @@ public class RadiusConnectionService {
* with parameters from guacamole.properties, or null if
* configuration fails.
*/
- private RadiusAuthenticator setupRadiusAuthenticator() throws GuacamoleException {
+ private RadiusAuthenticator setupRadiusAuthenticator(RadiusClient radiusClient)
+ throws GuacamoleException {
// If we don't have a radiusClient object, yet, don't go any further.
if (radiusClient == null) {
@@ -196,7 +194,7 @@ public class RadiusConnectionService {
}
// Create the RADIUS connection and set up the dictionary
- createRadiusConnection();
+ RadiusClient radiusClient = createRadiusConnection();
AttributeFactory.loadAttributeDictionary("net.jradius.dictionary.AttributeDictionaryImpl");
// Client failed to set up, so we return null
@@ -204,7 +202,7 @@ public class RadiusConnectionService {
return null;
// Set up the RadiusAuthenticator
- RadiusAuthenticator radAuth = setupRadiusAuthenticator();
+ RadiusAuthenticator radAuth = setupRadiusAuthenticator(radiusClient);
if (radAuth == null)
throw new GuacamoleException("Unknown RADIUS authentication protocol.");
@@ -248,6 +246,9 @@ public class RadiusConnectionService {
logger.debug("Unknown RADIUS algorithm.", e);
return null;
}
+ finally {
+ radiusClient.close();
+ }
}
public RadiusPacket sendChallengeResponse(String username, String response, String state)
@@ -272,13 +273,4 @@ public class RadiusConnectionService {
}
- /**
- * Disconnects the current RADIUS connection.
- */
- public void disconnect() {
-
- radiusClient.close();
-
- }
-
}