/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.security.password;
import org.apache.commons.lang.SerializationUtils;
import org.geoserver.platform.GeoServerEnvironment;
import org.geoserver.platform.GeoServerExtensions;
import org.geoserver.security.config.SecurityConfig;
/**
* Configuration object for the GeoServer master password.
*
* @author Justin Deoliveira, OpenGeo
*
*/
public class MasterPasswordConfig implements SecurityConfig {
/** serialVersionUID */
private static final long serialVersionUID = 1L;
String providerName;
public MasterPasswordConfig() {
}
public MasterPasswordConfig(MasterPasswordConfig other) {
this.providerName = other.getProviderName();
}
/**
* The name of the master password provider.
*/
public String getProviderName() {
return providerName;
}
/**
* Sets the name of the master password provider.
*/
public void setProviderName(String providerName) {
this.providerName = providerName;
}
@Override
public SecurityConfig clone(boolean allowEnvParametrization) {
final GeoServerEnvironment gsEnvironment = GeoServerExtensions.bean(GeoServerEnvironment.class);
MasterPasswordConfig target = (MasterPasswordConfig) SerializationUtils.clone(this);
if (target != null) {
if (allowEnvParametrization && gsEnvironment != null
&& GeoServerEnvironment.ALLOW_ENV_PARAMETRIZATION) {
target.setProviderName((String) gsEnvironment.resolveValue(providerName));
}
}
return target;
}
}