diff --git a/pom.xml b/pom.xml
index be5f3d93..c32b579a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,6 +24,7 @@
999999-SNAPSHOT
2.289.1
jenkinsci/${project.artifactId}-plugin
+ true
diff --git a/src/main/java/hudson/cli/MailCommand.java b/src/main/java/hudson/cli/MailCommand.java
index 432e9f9f..fbf9e946 100644
--- a/src/main/java/hudson/cli/MailCommand.java
+++ b/src/main/java/hudson/cli/MailCommand.java
@@ -45,7 +45,7 @@ public String getShortDescription() {
}
protected int run() throws Exception {
- Jenkins.get().checkPermission(Mailer.DescriptorImpl.getJenkinsManageOrAdmin());
+ Jenkins.get().checkPermission(Jenkins.MANAGE);
Transport.send(new MimeMessage(Mailer.descriptor().createSession(), stdin));
return 0;
}
diff --git a/src/main/java/hudson/tasks/Mailer.java b/src/main/java/hudson/tasks/Mailer.java
index 0644dabf..8145c943 100644
--- a/src/main/java/hudson/tasks/Mailer.java
+++ b/src/main/java/hudson/tasks/Mailer.java
@@ -27,7 +27,6 @@
import edu.umd.cs.findbugs.annotations.CheckForNull;
import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import hudson.Util;
import hudson.BulkChange;
import hudson.EnvVars;
@@ -41,7 +40,6 @@
import jenkins.plugins.mailer.tasks.i18n.Messages;
import hudson.security.Permission;
import hudson.util.FormValidation;
-import hudson.util.ReflectionUtils;
import hudson.util.Secret;
import hudson.util.XStream2;
@@ -53,7 +51,6 @@
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
-import java.lang.reflect.InvocationTargetException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
@@ -325,20 +322,9 @@ public DescriptorImpl() {
}
@NonNull
- // TODO: Add @Override when Jenkins core baseline is 2.222+
+ @Override
public Permission getRequiredGlobalConfigPagePermission() {
- return getJenkinsManageOrAdmin();
- }
-
- // TODO: remove when Jenkins core baseline is 2.222+
- public static Permission getJenkinsManageOrAdmin() {
- Permission manage;
- try { // Manage is available starting from Jenkins 2.222 (https://jenkins.io/changelog/#v2.222). See JEP-223 for more info
- manage = (Permission) ReflectionUtils.getPublicProperty(Jenkins.get(), "MANAGE");
- } catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | IllegalAccessException e) {
- manage = Jenkins.ADMINISTER;
- }
- return manage;
+ return Jenkins.MANAGE;
}
public String getDisplayName() {
@@ -670,7 +656,7 @@ public FormValidation doAddressCheck(@QueryParameter String value) {
@RequirePOST
public FormValidation doCheckSmtpHost(@QueryParameter String value) {
- Jenkins.get().checkPermission(getJenkinsManageOrAdmin());
+ Jenkins.get().checkPermission(Jenkins.MANAGE);
try {
if (Util.fixEmptyAndTrim(value)!=null)
InetAddress.getByName(value);
@@ -709,7 +695,7 @@ public FormValidation doSendTestMail(
@QueryParameter boolean useSsl, @QueryParameter boolean useTls, @QueryParameter String smtpPort, @QueryParameter String charset,
@QueryParameter String sendTestMailTo) throws IOException {
try {
- Jenkins.get().checkPermission(DescriptorImpl.getJenkinsManageOrAdmin());
+ Jenkins.get().checkPermission(Jenkins.MANAGE);
if (!authentication) {
username = null;
password = null;
diff --git a/src/test/java/hudson/tasks/MailerTest.java b/src/test/java/hudson/tasks/MailerTest.java
index 4fd2cb3c..8f555933 100644
--- a/src/test/java/hudson/tasks/MailerTest.java
+++ b/src/test/java/hudson/tasks/MailerTest.java
@@ -30,10 +30,8 @@
import hudson.model.*;
import hudson.security.ACL;
import hudson.security.ACLContext;
-import hudson.security.Permission;
import hudson.slaves.DumbSlave;
import hudson.tasks.Mailer.DescriptorImpl;
-import hudson.util.ReflectionUtils;
import hudson.util.Secret;
import org.hamcrest.MatcherAssert;
import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition;
@@ -62,8 +60,6 @@
import jenkins.model.JenkinsLocationConfiguration;
import java.io.IOException;
-import java.io.UncheckedIOException;
-import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicLong;
@@ -449,13 +445,6 @@ public void testMigrateOldData() {
@Test
public void managePermissionShouldAccessGlobalConfig() {
- Permission jenkinsManage;
- try {
- jenkinsManage = getJenkinsManage();
- } catch (Exception e) {
- Assume.assumeTrue("Jenkins baseline is too old for this test (requires Jenkins.MANAGE)", false);
- return;
- }
final String USER = "user";
final String MANAGER = "manager";
rule.jenkins.setSecurityRealm(rule.createDummySecurityRealm());
@@ -465,7 +454,7 @@ public void managePermissionShouldAccessGlobalConfig() {
// Read and Manage
.grant(Jenkins.READ).everywhere().to(MANAGER)
- .grant(jenkinsManage).everywhere().to(MANAGER)
+ .grant(Jenkins.MANAGE).everywhere().to(MANAGER)
);
try (ACLContext c = ACL.as(User.getById(USER, true))) {
@@ -513,13 +502,6 @@ public void doCheckSmtpServerShouldNotThrowForUserWithManagePermissions() {
}
}
- // TODO: remove when Jenkins core baseline is 2.222+
- private Permission getJenkinsManage() throws NoSuchMethodException, IllegalAccessException,
- InvocationTargetException {
- // Jenkins.MANAGE is available starting from Jenkins 2.222 (https://jenkins.io/changelog/#v2.222). See JEP-223 for more info
- return (Permission) ReflectionUtils.getPublicProperty(Jenkins.get(), "MANAGE");
- }
-
private final class TestProject {
private final FakeChangeLogSCM scm = new FakeChangeLogSCM();
private final FreeStyleProject project;