Skip to content

Commit 3872d58

Browse files
committed
StaticWhitelist.stockWhitelists for simplicity and efficiency
1 parent ff7e93b commit 3872d58

File tree

5 files changed

+20
-51
lines changed

5 files changed

+20
-51
lines changed

src/main/java/org/jenkinsci/plugins/scriptsecurity/sandbox/whitelists/GenericWhitelist.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,14 @@
2424

2525
package org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists;
2626

27-
import hudson.Extension;
2827
import java.io.IOException;
29-
import org.kohsuke.accmod.Restricted;
30-
import org.kohsuke.accmod.restrictions.NoExternalUse;
3128

3229
/**
33-
* Includes entries useful for general kinds of scripts.
30+
* @deprecated replaced by {@link StaticWhitelist#stockWhitelists}, now used only in tests
3431
*/
35-
@Restricted(NoExternalUse.class)
36-
@Extension public final class GenericWhitelist extends ProxyWhitelist {
32+
@Deprecated
33+
public final class GenericWhitelist extends ProxyWhitelist {
3734

38-
// TODO replace this & JenkinsWhitelist with @Extension on a static method
3935
public GenericWhitelist() throws IOException {
4036
super(StaticWhitelist.from(GenericWhitelist.class.getResource("generic-whitelist")));
4137
}

src/main/java/org/jenkinsci/plugins/scriptsecurity/sandbox/whitelists/JenkinsWhitelist.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/main/java/org/jenkinsci/plugins/scriptsecurity/sandbox/whitelists/StaticWhitelist.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,13 @@
4646

4747
import edu.umd.cs.findbugs.annotations.CheckForNull;
4848
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
49+
import hudson.Extension;
50+
import org.apache.commons.io.input.SequenceReader;
4951
import org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException;
52+
import org.jenkinsci.plugins.scriptsecurity.sandbox.Whitelist;
5053
import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval;
5154
import org.kohsuke.accmod.Restricted;
55+
import org.kohsuke.accmod.restrictions.DoNotUse;
5256
import org.kohsuke.accmod.restrictions.NoExternalUse;
5357

5458
/**
@@ -204,6 +208,17 @@ public static StaticWhitelist from(URL definition) throws IOException {
204208
}
205209
}
206210

211+
@Restricted(DoNotUse.class)
212+
@Extension public static Whitelist stockWhitelists() throws IOException {
213+
try (InputStream gis = StaticWhitelist.class.getResourceAsStream("generic-whitelist");
214+
Reader gr = new InputStreamReader(gis, StandardCharsets.UTF_8);
215+
InputStream jis = StaticWhitelist.class.getResourceAsStream("jenkins-whitelist");
216+
Reader jr = new InputStreamReader(jis, StandardCharsets.UTF_8);
217+
Reader r = new SequenceReader(gr, jr)) {
218+
return new StaticWhitelist(r);
219+
}
220+
}
221+
207222
@Override protected List<MethodSignature> methodSignatures() {
208223
return methodSignatures;
209224
}

src/test/java/org/jenkinsci/plugins/scriptsecurity/sandbox/whitelists/GenericWhitelistTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class GenericWhitelistTest {
3636
@Rule public ErrorCollector errors = new ErrorCollector();
3737

3838
@Test public void sanity() throws Exception {
39-
StaticWhitelistTest.sanity(GenericWhitelist.class.getResource("generic-whitelist"));
39+
StaticWhitelistTest.sanity(StaticWhitelist.class.getResource("generic-whitelist"));
4040
}
4141

4242
@Issue("SECURITY-538")

src/test/java/org/jenkinsci/plugins/scriptsecurity/sandbox/whitelists/JenkinsWhitelistTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
public class JenkinsWhitelistTest {
3030

3131
@Test public void sanity() throws Exception {
32-
StaticWhitelistTest.sanity(JenkinsWhitelist.class.getResource("jenkins-whitelist"));
32+
StaticWhitelistTest.sanity(StaticWhitelist.class.getResource("jenkins-whitelist"));
3333
}
3434

3535
}

0 commit comments

Comments
 (0)