GUAC-1100: Commit to String identifiers.

This commit is contained in:
Michael Jumper
2015-02-12 23:07:45 -08:00
parent 37227d05e8
commit e9538a4167
27 changed files with 201 additions and 202 deletions

View File

@@ -213,19 +213,19 @@ public class TunnelRequestService {
UserContext context = session.getUserContext();
// Get connection directory
Directory<String, Connection> directory =
Directory<Connection> directory =
context.getRootConnectionGroup().getConnectionDirectory();
// Get authorized connection
Connection connection = directory.get(id);
if (connection == null) {
logger.info("Connection \"{}\" does not exist for user \"{}\".", id, context.self().getUsername());
logger.info("Connection \"{}\" does not exist for user \"{}\".", id, context.self().getIdentifier());
throw new GuacamoleSecurityException("Requested connection is not authorized.");
}
// Connect socket
socket = connection.connect(info);
logger.info("User \"{}\" successfully connected to \"{}\".", context.self().getUsername(), id);
logger.info("User \"{}\" successfully connected to \"{}\".", context.self().getIdentifier(), id);
break;
}
@@ -235,19 +235,19 @@ public class TunnelRequestService {
UserContext context = session.getUserContext();
// Get connection group directory
Directory<String, ConnectionGroup> directory =
Directory<ConnectionGroup> directory =
context.getRootConnectionGroup().getConnectionGroupDirectory();
// Get authorized connection group
ConnectionGroup group = directory.get(id);
if (group == null) {
logger.info("Connection group \"{}\" does not exist for user \"{}\".", id, context.self().getUsername());
logger.info("Connection group \"{}\" does not exist for user \"{}\".", id, context.self().getIdentifier());
throw new GuacamoleSecurityException("Requested connection group is not authorized.");
}
// Connect socket
socket = group.connect(info);
logger.info("User \"{}\" successfully connected to group \"{}\".", context.self().getUsername(), id);
logger.info("User \"{}\" successfully connected to group \"{}\".", context.self().getIdentifier(), id);
break;
}

View File

@@ -59,7 +59,7 @@ public class ObjectRetrievalService {
String identifier) throws GuacamoleException {
// Get user directory
Directory<String, User> directory = userContext.getUserDirectory();
Directory<User> directory = userContext.getUserDirectory();
// Pull specified user
User user = directory.get(identifier);
@@ -91,7 +91,7 @@ public class ObjectRetrievalService {
// Get root directory
ConnectionGroup rootGroup = userContext.getRootConnectionGroup();
Directory<String, Connection> directory = rootGroup.getConnectionDirectory();
Directory<Connection> directory = rootGroup.getConnectionDirectory();
// Pull specified connection
Connection connection = directory.get(identifier);
@@ -132,7 +132,7 @@ public class ObjectRetrievalService {
return rootGroup;
// Pull specified connection group otherwise
Directory<String, ConnectionGroup> directory = rootGroup.getConnectionGroupDirectory();
Directory<ConnectionGroup> directory = rootGroup.getConnectionGroupDirectory();
ConnectionGroup connectionGroup = directory.get(identifier);
if (connectionGroup == null)

View File

@@ -188,8 +188,8 @@ public class TokenRESTService {
tokenSessionMap.put(authToken, new GuacamoleSession(credentials, userContext));
}
logger.debug("Login was successful for user \"{}\".", userContext.self().getUsername());
return new APIAuthToken(authToken, userContext.self().getUsername());
logger.debug("Login was successful for user \"{}\".", userContext.self().getIdentifier());
return new APIAuthToken(authToken, userContext.self().getIdentifier());
}

View File

@@ -139,7 +139,7 @@ public class ConnectionRESTService {
// Retrieve permission sets
SystemPermissionSet systemPermissions = self.getSystemPermissions();
ObjectPermissionSet<String> connectionPermissions = self.getConnectionPermissions();
ObjectPermissionSet connectionPermissions = self.getConnectionPermissions();
// Deny access if adminstrative or update permission is missing
if (!systemPermissions.hasPermission(SystemPermission.Type.ADMINISTER)
@@ -211,7 +211,7 @@ public class ConnectionRESTService {
// Get the connection directory
ConnectionGroup rootGroup = userContext.getRootConnectionGroup();
Directory<String, Connection> connectionDirectory =
Directory<Connection> connectionDirectory =
rootGroup.getConnectionDirectory();
// Delete the specified connection
@@ -252,7 +252,7 @@ public class ConnectionRESTService {
ConnectionGroup parentConnectionGroup = retrievalService.retrieveConnectionGroup(userContext, parentID);
// Add the new connection
Directory<String, Connection> connectionDirectory = parentConnectionGroup.getConnectionDirectory();
Directory<Connection> connectionDirectory = parentConnectionGroup.getConnectionDirectory();
connectionDirectory.add(new APIConnectionWrapper(connection));
// Return the new connection identifier
@@ -292,7 +292,7 @@ public class ConnectionRESTService {
// Get the connection directory
ConnectionGroup rootGroup = userContext.getRootConnectionGroup();
Directory<String, Connection> connectionDirectory =
Directory<Connection> connectionDirectory =
rootGroup.getConnectionDirectory();
// Retrieve connection to update

View File

@@ -92,12 +92,12 @@ public class APIConnectionGroupWrapper implements ConnectionGroup {
}
@Override
public Directory<String, Connection> getConnectionDirectory() throws GuacamoleException {
public Directory<Connection> getConnectionDirectory() throws GuacamoleException {
throw new UnsupportedOperationException("Operation not supported.");
}
@Override
public Directory<String, ConnectionGroup> getConnectionGroupDirectory() throws GuacamoleException {
public Directory<ConnectionGroup> getConnectionGroupDirectory() throws GuacamoleException {
throw new UnsupportedOperationException("Operation not supported.");
}

View File

@@ -104,7 +104,7 @@ public class ConnectionGroupRESTService {
List<ObjectPermission.Type> permissions) throws GuacamoleException {
// Retrieve connection permissions
ObjectPermissionSet<String> connectionPermissions = user.getConnectionPermissions();
ObjectPermissionSet connectionPermissions = user.getConnectionPermissions();
// Determine whether user has at least one of the given permissions
for (ObjectPermission.Type permission : permissions) {
@@ -138,7 +138,7 @@ public class ConnectionGroupRESTService {
List<ObjectPermission.Type> permissions) throws GuacamoleException {
// Retrieve connection group permissions
ObjectPermissionSet<String> connectionGroupPermissions = user.getConnectionGroupPermissions();
ObjectPermissionSet connectionGroupPermissions = user.getConnectionGroupPermissions();
// Determine whether user has at least one of the given permissions
for (ObjectPermission.Type permission : permissions) {
@@ -211,7 +211,7 @@ public class ConnectionGroupRESTService {
// Query all child connections
Collection<APIConnection> apiConnections = new ArrayList<APIConnection>();
Directory<String, Connection> connectionDirectory = connectionGroup.getConnectionDirectory();
Directory<Connection> connectionDirectory = connectionGroup.getConnectionDirectory();
for (String childIdentifier : connectionDirectory.getIdentifiers()) {
@@ -231,7 +231,7 @@ public class ConnectionGroupRESTService {
// Query all child connection groups
Collection<APIConnectionGroup> apiConnectionGroups = new ArrayList<APIConnectionGroup>();
Directory<String, ConnectionGroup> groupDirectory = connectionGroup.getConnectionGroupDirectory();
Directory<ConnectionGroup> groupDirectory = connectionGroup.getConnectionGroupDirectory();
for (String childIdentifier : groupDirectory.getIdentifiers()) {
@@ -356,7 +356,7 @@ public class ConnectionGroupRESTService {
// Get the connection group directory
ConnectionGroup rootGroup = userContext.getRootConnectionGroup();
Directory<String, ConnectionGroup> connectionGroupDirectory =
Directory<ConnectionGroup> connectionGroupDirectory =
rootGroup.getConnectionGroupDirectory();
// Delete the connection group
@@ -399,7 +399,7 @@ public class ConnectionGroupRESTService {
ConnectionGroup parentConnectionGroup = retrievalService.retrieveConnectionGroup(userContext, parentID);
// Add the new connection group
Directory<String, ConnectionGroup> connectionGroupDirectory = parentConnectionGroup.getConnectionGroupDirectory();
Directory<ConnectionGroup> connectionGroupDirectory = parentConnectionGroup.getConnectionGroupDirectory();
connectionGroupDirectory.add(new APIConnectionGroupWrapper(connectionGroup));
// Return the new connection group identifier
@@ -440,7 +440,7 @@ public class ConnectionGroupRESTService {
// Get the connection group directory
ConnectionGroup rootGroup = userContext.getRootConnectionGroup();
Directory<String, ConnectionGroup> connectionGroupDirectory =
Directory<ConnectionGroup> connectionGroupDirectory =
rootGroup.getConnectionGroupDirectory();
// Retrieve connection group to update

View File

@@ -114,10 +114,10 @@ public class APIPermissionSet {
* ObjectPermissionSet.
*/
private void addObjectPermissions(Map<String, Set<ObjectPermission.Type>> permissions,
ObjectPermissionSet<String> permSet) throws GuacamoleException {
ObjectPermissionSet permSet) throws GuacamoleException {
// Add all provided object permissions
for (ObjectPermission<String> permission : permSet.getPermissions()) {
for (ObjectPermission permission : permSet.getPermissions()) {
// Get associated set of permissions
String identifier = permission.getObjectIdentifier();

View File

@@ -55,7 +55,7 @@ public class APIUser {
* @param user The User to construct the APIUser from.
*/
public APIUser(User user) {
this.username = user.getUsername();
this.username = user.getIdentifier();
this.password = user.getPassword();
}

View File

@@ -52,12 +52,12 @@ public class APIUserWrapper implements User {
}
@Override
public String getUsername() {
public String getIdentifier() {
return apiUser.getUsername();
}
@Override
public void setUsername(String username) {
public void setIdentifier(String username) {
apiUser.setUsername(username);
}
@@ -78,19 +78,19 @@ public class APIUserWrapper implements User {
}
@Override
public ObjectPermissionSet<String> getConnectionPermissions()
public ObjectPermissionSet getConnectionPermissions()
throws GuacamoleException {
throw new GuacamoleUnsupportedException("APIUserWrapper does not provide permission access.");
}
@Override
public ObjectPermissionSet<String> getConnectionGroupPermissions()
public ObjectPermissionSet getConnectionGroupPermissions()
throws GuacamoleException {
throw new GuacamoleUnsupportedException("APIUserWrapper does not provide permission access.");
}
@Override
public ObjectPermissionSet<String> getUserPermissions()
public ObjectPermissionSet getUserPermissions()
throws GuacamoleException {
throw new GuacamoleUnsupportedException("APIUserWrapper does not provide permission access.");
}

View File

@@ -151,12 +151,12 @@ public class UserRESTService {
boolean isAdmin = systemPermissions.hasPermission(SystemPermission.Type.ADMINISTER);
// Get the directory
Directory<String, User> userDirectory = userContext.getUserDirectory();
Directory<User> userDirectory = userContext.getUserDirectory();
// Filter users, if requested
Collection<String> userIdentifiers = userDirectory.getIdentifiers();
if (!isAdmin && permissions != null) {
ObjectPermissionSet<String> userPermissions = self.getUserPermissions();
ObjectPermissionSet userPermissions = self.getUserPermissions();
userIdentifiers = userPermissions.getAccessibleObjects(permissions, userIdentifiers);
}
@@ -217,7 +217,7 @@ public class UserRESTService {
UserContext userContext = authenticationService.getUserContext(authToken);
// Get the directory
Directory<String, User> userDirectory = userContext.getUserDirectory();
Directory<User> userDirectory = userContext.getUserDirectory();
// Randomly set the password if it wasn't provided
if (user.getPassword() == null)
@@ -256,7 +256,7 @@ public class UserRESTService {
UserContext userContext = authenticationService.getUserContext(authToken);
// Get the directory
Directory<String, User> userDirectory = userContext.getUserDirectory();
Directory<User> userDirectory = userContext.getUserDirectory();
// Validate data and path are sane
if (!user.getUsername().equals(username))
@@ -298,7 +298,7 @@ public class UserRESTService {
UserContext userContext = authenticationService.getUserContext(authToken);
// Get the directory
Directory<String, User> userDirectory = userContext.getUserDirectory();
Directory<User> userDirectory = userContext.getUserDirectory();
// Get the user
User existingUser = userDirectory.get(username);
@@ -338,7 +338,7 @@ public class UserRESTService {
User user;
// If username is own username, just use self - might not have query permissions
if (userContext.self().getUsername().equals(username))
if (userContext.self().getIdentifier().equals(username))
user = userContext.self();
// If not self, query corresponding user from directory
@@ -430,10 +430,10 @@ public class UserRESTService {
throw new GuacamoleResourceNotFoundException("No such user: \"" + username + "\"");
// Permission patches for all types of permissions
PermissionSetPatch<ObjectPermission<String>> connectionPermissionPatch = new PermissionSetPatch<ObjectPermission<String>>();
PermissionSetPatch<ObjectPermission<String>> connectionGroupPermissionPatch = new PermissionSetPatch<ObjectPermission<String>>();
PermissionSetPatch<ObjectPermission<String>> userPermissionPatch = new PermissionSetPatch<ObjectPermission<String>>();
PermissionSetPatch<SystemPermission> systemPermissionPatch = new PermissionSetPatch<SystemPermission>();
PermissionSetPatch<ObjectPermission> connectionPermissionPatch = new PermissionSetPatch<ObjectPermission>();
PermissionSetPatch<ObjectPermission> connectionGroupPermissionPatch = new PermissionSetPatch<ObjectPermission>();
PermissionSetPatch<ObjectPermission> userPermissionPatch = new PermissionSetPatch<ObjectPermission>();
PermissionSetPatch<SystemPermission> systemPermissionPatch = new PermissionSetPatch<SystemPermission>();
// Apply all patch operations individually
for (APIPatch<String> patch : patches) {
@@ -448,7 +448,7 @@ public class UserRESTService {
ObjectPermission.Type type = ObjectPermission.Type.valueOf(patch.getValue());
// Create and update corresponding permission
ObjectPermission<String> permission = new ObjectPermission<String>(type, identifier);
ObjectPermission permission = new ObjectPermission(type, identifier);
updatePermissionSet(patch.getOp(), connectionPermissionPatch, permission);
}
@@ -461,7 +461,7 @@ public class UserRESTService {
ObjectPermission.Type type = ObjectPermission.Type.valueOf(patch.getValue());
// Create and update corresponding permission
ObjectPermission<String> permission = new ObjectPermission<String>(type, identifier);
ObjectPermission permission = new ObjectPermission(type, identifier);
updatePermissionSet(patch.getOp(), connectionGroupPermissionPatch, permission);
}
@@ -474,7 +474,7 @@ public class UserRESTService {
ObjectPermission.Type type = ObjectPermission.Type.valueOf(patch.getValue());
// Create and update corresponding permission
ObjectPermission<String> permission = new ObjectPermission<String>(type, identifier);
ObjectPermission permission = new ObjectPermission(type, identifier);
updatePermissionSet(patch.getOp(), userPermissionPatch, permission);
}