From e181ac473a9ea3d8b531ff0f061e7ca7071f7d87 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Wed, 17 Dec 2014 14:58:33 +0100 Subject: [PATCH] [JENKINS-23447] only mask sensible data when injectedEnvVars.txt is persisted or exposed on UI --- .../lib/envinject/EnvInjectAction.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/jenkinsci/lib/envinject/EnvInjectAction.java b/src/main/java/org/jenkinsci/lib/envinject/EnvInjectAction.java index 4b72a91..ac5d96c 100644 --- a/src/main/java/org/jenkinsci/lib/envinject/EnvInjectAction.java +++ b/src/main/java/org/jenkinsci/lib/envinject/EnvInjectAction.java @@ -30,6 +30,7 @@ public class EnvInjectAction implements Action, StaplerProxy { */ private transient Map resultVariables; private transient File rootDir; + private transient Set sensibleVariables; public EnvInjectAction(AbstractBuild build, Map envMap) { this.build = build; @@ -49,12 +50,8 @@ public void overrideAll(final Set sensibleVariables, Map return; } - envMap.putAll(Maps.transformEntries(all, - new Maps.EntryTransformer() { - public String transformEntry(String key, String value) { - return sensibleVariables.contains(key) ? "********" : value; - } - })); + this.sensibleVariables = sensibleVariables; + envMap.putAll(all); } @SuppressWarnings({"unused", "unchecked"}) @@ -91,7 +88,12 @@ private Object writeReplace() throws ObjectStreamException { EnvInjectSavable dao = new EnvInjectSavable(); if (rootDir == null) { - dao.saveEnvironment(build.getRootDir(), envMap); + dao.saveEnvironment(build.getRootDir(), Maps.transformEntries(envMap, + new Maps.EntryTransformer() { + public String transformEntry(String key, String value) { + return sensibleVariables.contains(key) ? "********" : value; + } + })); return this; } @@ -152,4 +154,8 @@ private Object readResolve() throws ObjectStreamException { public Object getTarget() { throw new UnsupportedOperationException(); } + + public Set getSensibleVariables() { + return sensibleVariables; + } }