diff --git a/src/main/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApproval.java b/src/main/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApproval.java index e80efedf..74690ce4 100644 --- a/src/main/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApproval.java +++ b/src/main/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApproval.java @@ -879,7 +879,9 @@ synchronized boolean isClasspathEntryApproved(URL url) { * @return {@code script}, for convenience */ public synchronized String preapprove(@NonNull String script, @NonNull Language language) { - approvedScriptHashes.add(DEFAULT_HASHER.hash(script, language.getName())); + String hash = DEFAULT_HASHER.hash(script, language.getName()); + approvedScriptHashes.add(hash); + removePendingScript(hash); return script; } diff --git a/src/test/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApprovalTest.java b/src/test/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApprovalTest.java index e25bd110..f03180a7 100644 --- a/src/test/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApprovalTest.java +++ b/src/test/java/org/jenkinsci/plugins/scriptsecurity/scripts/ScriptApprovalTest.java @@ -86,6 +86,31 @@ public class ScriptApprovalTest extends AbstractApprovalTest