@Override
public void getProperties(Map<String,String> props, Predicate<String> filter) {
parent.getProperties(props, filter);
for (Entry<String,String> entry : getXmlConfig())
if (filter.apply(entry.getKey()))
props.put(entry.getKey(), entry.getValue());
Configuration hadoopConf = getHadoopConfiguration();
if (null != hadoopConf) {
try {
for (String key : CredentialProviderFactoryShim.getKeys(hadoopConf)) {
if (!Property.isValidPropertyKey(key) || !Property.isSensitive(key)) {
continue;
}
if (filter.apply(key)) {
char[] value = CredentialProviderFactoryShim.getValueFromCredentialProvider(hadoopConf,
key);
if (null != value) {
props.put(key, new String(value));
}
}
}
} catch (IOException e) {
log.warn("Failed to extract sensitive properties from Hadoop"
+ " CredentialProvider, falling back to accumulo-site.xml", e);
}
}
}