GUACAMOLE-464: configuration properties from OS environment

This commit is contained in:
Carl Harris
2017-12-14 06:14:15 -05:00
parent 044860c0ed
commit 263cbf2331

View File

@@ -304,9 +304,41 @@ public class LocalEnvironment implements Environment {
return guacHome;
}
/**
* Gets the string value for a property name.
*
* The value may come from either the OS environment or the Properties
* collection that was loaded from guacamole.properties. When checking the
* environment for the named property, the name is first transformed by
* converting all hyphens to underscores and converting the string to
* upper case letter, in accordance with common convention for environment
* strings.
*
* @param name
* The name of the property value to retrieve.
*
* @return
* The corresponding value for the property. If the value is found in
* the OS environment, any corresponding value from the Properties
* collection containing properties from guacamole.properties is
* ignored.
*/
private String getPropertyValue(String name) {
// transform the name according to common convention
final String envName = name.replace('-', '_').toUpperCase();
final String envValue = System.getenv(envName);
if (envValue != null) {
return envValue;
}
return properties.getProperty(name);
}
@Override
public <Type> Type getProperty(GuacamoleProperty<Type> property) throws GuacamoleException {
return property.parseValue(properties.getProperty(property.getName()));
return property.parseValue(getPropertyValue(property.getName()));
}
@Override