package netflix.adminresources.resources; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Splitter; import com.netflix.config.DynamicPropertyFactory; import java.util.HashSet; import java.util.Set; public class MaskedResourceHelper { @VisibleForTesting public static final String MASKED_PROPERTY_NAMES = "netflix.platform.admin.resources.masked.property.names"; public static final String MASKED_ENV_NAMES = "netflix.platform.admin.resources.masked.env.names"; public static final String MASKED_PROPERTY_VALUE = "**** MASKED ****"; private static final Splitter SPLITTER = Splitter.on(',') .trimResults() .omitEmptyStrings(); public static Set<String> getMaskedPropertiesSet() { String maskedResourceNames = DynamicPropertyFactory.getInstance().getStringProperty(MASKED_PROPERTY_NAMES, "").get(); Set<String> maskedPropertiesSet = getMaskedResourceSet(maskedResourceNames); // add the MASKED_PROPERTY_NAMES property, itself, for super-duper security-obscurity maskedPropertiesSet.add(MASKED_PROPERTY_NAMES); return maskedPropertiesSet; } public static Set<String> getMaskedEnvSet() { String maskedResourceNames = DynamicPropertyFactory.getInstance().getStringProperty(MASKED_ENV_NAMES, "").get(); return getMaskedResourceSet(maskedResourceNames); } private static Set<String> getMaskedResourceSet(String maskedResourceNames) { Iterable<String> maskedResourceNamesIter = SPLITTER.split(maskedResourceNames); Set<String> maskedResourceSet = new HashSet<String>(); for (String maskedResource : maskedResourceNamesIter) { maskedResourceSet.add(maskedResource); } return maskedResourceSet; } }