提交 2ce5036c 编写于 作者: O Oleg Nenashev 提交者: Oliver Gondža

[JENKINS-49543] - Add direct unit test for module class whitelisting

(cherry picked from commit 800668ba)
上级 db0bddeb
......@@ -24,6 +24,7 @@
package jenkins.security;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
import hudson.ExtensionList;
import hudson.Main;
......@@ -105,7 +106,8 @@ public class ClassFilterImpl extends ClassFilter {
ClassFilter.setDefault(ClassFilter.NONE); // even Method on the standard blacklist is going to explode
}
private ClassFilterImpl() {}
@VisibleForTesting
/*package*/ ClassFilterImpl() {}
/** Whether a given class is blacklisted. */
private final Map<Class<?>, Boolean> cache = Collections.synchronizedMap(new WeakHashMap<>());
......
......@@ -36,6 +36,7 @@ import hudson.model.BuildListener;
import hudson.model.FreeStyleProject;
import hudson.model.Result;
import hudson.model.Saveable;
import hudson.remoting.ClassFilter;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.Builder;
import java.io.IOException;
......@@ -51,6 +52,7 @@ import static org.junit.Assume.*;
import org.junit.ClassRule;
import org.junit.Rule;
import org.jvnet.hudson.test.BuildWatcher;
import org.jvnet.hudson.test.Issue;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.LoggerRule;
import org.jvnet.hudson.test.TestExtension;
......@@ -149,6 +151,16 @@ public class ClassFilterImplTest {
assertEquals(Collections.singleton(config), data.keySet());
assertThat(data.values().iterator().next().extra, allOf(containsString("LinkedListMultimap"), containsString("https://jenkins.io/redirect/class-filter/")));
}
@Test
@Issue("JENKINS-49543")
public void moduleClassesShouldBeWhitelisted() throws Exception {
ClassFilterImpl filter = new ClassFilterImpl();
filter.check("org.jenkinsci.main.modules.cli.auth.ssh.UserPropertyImpl");
filter.check("org.jenkinsci.modules.windows_slave_installer.WindowsSlaveInstaller");
filter.check("org.jenkinsci.main.modules.instance_identity.PageDecoratorImpl");
}
@TestExtension("xstreamRequiresWhitelist")
public static class Config extends GlobalConfiguration {
LinkedListMultimap<?, ?> obj;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册