mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUACAMOLE-1656: Add per-user KSM vault functionality.
This commit is contained in:
@@ -30,6 +30,16 @@ import org.apache.guacamole.form.Form;
|
||||
*/
|
||||
public interface VaultAttributeService {
|
||||
|
||||
/**
|
||||
* Return all custom connection attributes to be exposed through the
|
||||
* admin UI for the current vault implementation.
|
||||
*
|
||||
* @return
|
||||
* All custom connection attributes to be exposed through the
|
||||
* admin UI for the current vault implementation.
|
||||
*/
|
||||
public Collection<Form> getConnectionAttributes();
|
||||
|
||||
/**
|
||||
* Return all custom connection group attributes to be exposed through the
|
||||
* admin UI for the current vault implementation.
|
||||
@@ -39,4 +49,24 @@ public interface VaultAttributeService {
|
||||
* admin UI for the current vault implementation.
|
||||
*/
|
||||
public Collection<Form> getConnectionGroupAttributes();
|
||||
|
||||
/**
|
||||
* Return all custom user attributes to be exposed through the admin UI for
|
||||
* the current vault implementation.
|
||||
*
|
||||
* @return
|
||||
* All custom user attributes to be exposed through the admin UI for
|
||||
* the current vault implementation.
|
||||
*/
|
||||
public Collection<Form> getUserAttributes();
|
||||
|
||||
/**
|
||||
* Return all user preference attributes to be exposed through the user
|
||||
* preferences UI for the current vault implementation.
|
||||
*
|
||||
* @return
|
||||
* All user preference attributes to be exposed through the user
|
||||
* preferences UI for the current vault implementation.
|
||||
*/
|
||||
public Collection<Form> getUserPreferenceAttributes();
|
||||
}
|
||||
|
@@ -241,7 +241,7 @@ public class VaultUserContext extends TokenInjectingUserContext {
|
||||
*
|
||||
* @throws GuacamoleException
|
||||
* If the value for any applicable secret cannot be retrieved from the
|
||||
* vault due to an error.
|
||||
* vault due to an error.1
|
||||
*/
|
||||
private Map<String, Future<String>> getTokens(
|
||||
Connectable connectable, Map<String, String> tokenMapping,
|
||||
@@ -407,7 +407,6 @@ public class VaultUserContext extends TokenInjectingUserContext {
|
||||
TokenFilter filter = createFilter();
|
||||
filter.setToken(CONNECTION_NAME_TOKEN, connection.getName());
|
||||
filter.setToken(CONNECTION_IDENTIFIER_TOKEN, identifier);
|
||||
|
||||
// Add hostname and username tokens if available (implementations are
|
||||
// not required to expose connection configuration details)
|
||||
|
||||
@@ -439,17 +438,6 @@ public class VaultUserContext extends TokenInjectingUserContext {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Form> getConnectionGroupAttributes() {
|
||||
|
||||
// Add any custom attributes to any previously defined attributes
|
||||
return Collections.unmodifiableCollection(Stream.concat(
|
||||
super.getConnectionGroupAttributes().stream(),
|
||||
attributeService.getConnectionGroupAttributes().stream()
|
||||
).collect(Collectors.toList()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Directory<User> getUserDirectory() throws GuacamoleException {
|
||||
|
||||
@@ -490,6 +478,51 @@ public class VaultUserContext extends TokenInjectingUserContext {
|
||||
|
||||
// Defer to the vault-specific directory service
|
||||
return directoryService.getSharingProfileDirectory(super.getSharingProfileDirectory());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Form> getUserAttributes() {
|
||||
|
||||
// Add any custom attributes to any previously defined attributes
|
||||
return Collections.unmodifiableCollection(Stream.concat(
|
||||
super.getUserAttributes().stream(),
|
||||
attributeService.getUserAttributes().stream()
|
||||
).collect(Collectors.toList()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Form> getUserPreferenceAttributes() {
|
||||
|
||||
// Add any custom preference attributes to any previously defined attributes
|
||||
return Collections.unmodifiableCollection(Stream.concat(
|
||||
super.getUserPreferenceAttributes().stream(),
|
||||
attributeService.getUserPreferenceAttributes().stream()
|
||||
).collect(Collectors.toList()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Form> getConnectionAttributes() {
|
||||
|
||||
// Add any custom attributes to any previously defined attributes
|
||||
return Collections.unmodifiableCollection(Stream.concat(
|
||||
super.getConnectionAttributes().stream(),
|
||||
attributeService.getConnectionAttributes().stream()
|
||||
).collect(Collectors.toList()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Form> getConnectionGroupAttributes() {
|
||||
|
||||
// Add any custom attributes to any previously defined attributes
|
||||
return Collections.unmodifiableCollection(Stream.concat(
|
||||
super.getConnectionGroupAttributes().stream(),
|
||||
attributeService.getConnectionGroupAttributes().stream()
|
||||
).collect(Collectors.toList()));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user