Skip to content

Commit 6ef4d89

Browse files
authored
Fix CVE 2019 10474 and bump dependencies (jenkinsci#12)
* Fix CVE-2019-10474 * update minimal jenkins version remove deprecated calls to jenkins api * change build config
1 parent 8893f9b commit 6ef4d89

6 files changed

Lines changed: 26 additions & 21 deletions

File tree

Jenkinsfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1-
buildPlugin(configurations: buildPlugin.recommendedConfigurations())
2-
1+
buildPlugin(
2+
configurations: [
3+
[platform: 'linux', jdk: 11],
4+
[platform: 'windows', jdk: 11],
5+
])

pom.xml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
<parent>
55
<groupId>org.jenkins-ci.plugins</groupId>
66
<artifactId>plugin</artifactId>
7-
<version>4.37</version>
7+
<version>4.54</version>
88
<relativePath />
99
</parent>
1010
<artifactId>global-post-script</artifactId>
11-
<version>1.1.5-SNAPSHOT</version>
11+
<version>1.1.6-SNAPSHOT</version>
1212
<packaging>hpi</packaging>
1313

1414
<url>https://wiki.jenkins-ci.org/display/JENKINS/Global+Post+Script+Plugin</url>
@@ -23,8 +23,7 @@
2323

2424
<properties>
2525
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
26-
<java.level>8</java.level>
27-
<jenkins.version>2.303.3</jenkins.version>
26+
<jenkins.version>2.375.2</jenkins.version>
2827
</properties>
2928

3029
<developers>
@@ -65,7 +64,6 @@
6564
<plugin>
6665
<groupId>org.apache.maven.plugins</groupId>
6766
<artifactId>maven-release-plugin</artifactId>
68-
<version>2.5</version>
6967
<configuration>
7068
<goals>deploy</goals>
7169
</configuration>

src/main/java/com/orctom/jenkins/plugin/globalpostscript/GlobalPostScript.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void onCompleted(Run run, TaskListener listener) {
5454
}
5555

5656
String script = getDescriptorImpl().getScript();
57-
File file = new File(Jenkins.getInstance().getRootDir().getAbsolutePath() + SCRIPT_FOLDER, script);
57+
File file = new File(Jenkins.get().getRootDir().getAbsolutePath() + SCRIPT_FOLDER, script);
5858
if (file.exists()) {
5959
try {
6060
BadgeManager manager = new BadgeManager(run, listener);
@@ -83,7 +83,7 @@ public Descriptor<GlobalPostScript> getDescriptor() {
8383
}
8484

8585
public DescriptorImpl getDescriptorImpl() {
86-
return (DescriptorImpl) Jenkins.getInstance().getDescriptorOrDie(GlobalPostScript.class);
86+
return (DescriptorImpl) Jenkins.get().getDescriptorOrDie(GlobalPostScript.class);
8787
}
8888

8989
@SuppressWarnings("unchecked")
@@ -141,11 +141,11 @@ public void triggerJob(String jobName, Map<String, String> params) {
141141
for (Map.Entry<String, String> entry : params.entrySet()) {
142142
newParams.add(new StringParameterValue(entry.getKey(), entry.getValue()));
143143
}
144-
AbstractProject job = Jenkins.getInstance().getItem(jobName, run.getParent().getParent(), AbstractProject.class);
144+
AbstractProject job = Jenkins.get().getItem(jobName, run.getParent().getParent(), AbstractProject.class);
145145
if (null != job) {
146146
Cause cause = new Cause.UpstreamCause(run);
147147
boolean scheduled = job.scheduleBuild(job.getQuietPeriod(), cause, new ParametersAction(newParams));
148-
if (Jenkins.getInstance().getItemByFullName(job.getFullName()) == job) {
148+
if (Jenkins.get().getItemByFullName(job.getFullName()) == job) {
149149
String name = ModelHyperlinkNote.encodeTo(job) + " "
150150
+ ModelHyperlinkNote.encodeTo(
151151
job.getAbsoluteUrl() + job.getNextBuildNumber() + "/",
@@ -201,7 +201,7 @@ public String getCause() {
201201
}
202202
}
203203

204-
String rootUrl = Jenkins.getInstance().getRootUrl();
204+
String rootUrl = Jenkins.get().getRootUrl();
205205
if (StringUtils.isNotEmpty(rootUrl)) {
206206
cause.append("on ").append(rootUrl).append(" ");
207207
}
@@ -226,6 +226,7 @@ public DescriptorImpl() {
226226
}
227227

228228
public FormValidation doCheckScript(@QueryParameter("script") String name) throws IOException, ServletException {
229+
Jenkins.get().checkPermission(Jenkins.ADMINISTER);
229230
if (StringUtils.isEmpty(name)) {
230231
return FormValidation.error("Please set the script name");
231232
}
@@ -238,7 +239,7 @@ public FormValidation doCheckScript(@QueryParameter("script") String name) throw
238239
public ComboBoxModel doFillScriptItems() {
239240
ComboBoxModel items = new ComboBoxModel();
240241

241-
File scriptFolder = new File(Jenkins.getInstance().getRootDir().getAbsolutePath() + SCRIPT_FOLDER);
242+
File scriptFolder = new File(Jenkins.get().getRootDir().getAbsolutePath() + SCRIPT_FOLDER);
242243
FilenameFilter filter = new FilenameFilter() {
243244
public boolean accept(File dir, String name) {
244245
String fileName = name.toLowerCase();

src/main/java/com/orctom/jenkins/plugin/globalpostscript/GlobalPostScriptAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ private static String getIconPath(String icon) {
3333
return null;
3434
}
3535

36-
PluginWrapper wrapper = Jenkins.getInstance().getPluginManager().getPlugin(GlobalPostScriptPlugin.class);
36+
PluginWrapper wrapper = Jenkins.get().getPluginManager().getPlugin(GlobalPostScriptPlugin.class);
3737
boolean pluginIconExists = (wrapper != null) && new File(wrapper.baseResourceURL.getPath() + "/img/" + icon).exists();
3838
return pluginIconExists ? "/plugin/global-post-script/img/" + icon : Jenkins.RESOURCE_PATH + "/images/16x16/" + icon;
3939
}

src/main/java/com/orctom/jenkins/plugin/globalpostscript/runner/GroovyScriptRunner.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,14 @@ public void run(File scriptFile,
4242
}
4343

4444
protected ClassLoader getGroovyClassloader() {
45-
if (null == Jenkins.getInstance()) {
45+
try {
46+
Jenkins.get();
47+
}
48+
catch (IllegalStateException e){
4649
return getParentClassloader();
4750
}
48-
49-
File libFolder = new File(Jenkins.getInstance().getRootDir().getAbsolutePath() + GlobalPostScript.SCRIPT_FOLDER, "lib");
51+
52+
File libFolder = new File(Jenkins.get().getRootDir().getAbsolutePath() + GlobalPostScript.SCRIPT_FOLDER, "lib");
5053
return getGroovyClassloader(libFolder);
5154
}
5255

src/main/java/com/orctom/jenkins/plugin/globalpostscript/runner/ScriptRunner.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.orctom.jenkins.plugin.globalpostscript.runner;
22

33
import com.orctom.jenkins.plugin.globalpostscript.GlobalPostScript;
4-
import groovy.lang.GroovyClassLoader;
54
import hudson.model.TaskListener;
65
import jenkins.model.Jenkins;
76

@@ -24,9 +23,10 @@ protected void println(TaskListener listener, String message) {
2423
}
2524

2625
protected ClassLoader getParentClassloader() {
27-
if (null != Jenkins.getInstance()) {
28-
return Jenkins.getInstance().getPluginManager().uberClassLoader;
29-
} else {
26+
try {
27+
return Jenkins.get().getPluginManager().uberClassLoader;
28+
}
29+
catch (IllegalStateException e){
3030
return Thread.currentThread().getContextClassLoader();
3131
}
3232
}

0 commit comments

Comments
 (0)