diff --git a/pom.xml b/pom.xml index a91d123..02b66ff 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ org.jenkins-ci.plugins script-security - 1.14 + 1.16 diff --git a/src/main/java/org/jenkinsci/plugins/permissivescriptsecurity/PermissiveWhitelist.java b/src/main/java/org/jenkinsci/plugins/permissivescriptsecurity/PermissiveWhitelist.java index b655b86..ee74008 100644 --- a/src/main/java/org/jenkinsci/plugins/permissivescriptsecurity/PermissiveWhitelist.java +++ b/src/main/java/org/jenkinsci/plugins/permissivescriptsecurity/PermissiveWhitelist.java @@ -67,6 +67,17 @@ public boolean act(RejectedAccessException ex) { return true; } }, + NO_DANGEROUS() { + public boolean act(RejectedAccessException ex) { + LOGGER.log(Level.INFO, "Unsecure signature found: " + ex.getSignature(), ex); + if(ex.isDangerous()) { + LOGGER.log(Level.INFO, "Dangerous signature rejected: " + ex.getSignature()); + return false; + } + ScriptApproval.get().accessRejected(ex, ApprovalContext.create().withCurrentUser()); + return true; + } + }, NO_SECURITY() { public boolean act(RejectedAccessException ex) { return true; // You have been warned @@ -78,6 +89,8 @@ public boolean act(RejectedAccessException ex) { public static Mode getConfigured(String config) { if ("true".equals(config)) { return ENABLED; + } else if ("no_dangerous".equals(config)) { + return NO_DANGEROUS; } else if ("no_security".equals(config)) { return NO_SECURITY; } else {