diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterValue.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterValue.java index 10fc73a46..1c9678e5d 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterValue.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsParameterValue.java @@ -14,6 +14,7 @@ import hudson.model.User; import hudson.model.queue.WorkUnit; import hudson.security.ACL; +import hudson.security.ACLContext; import hudson.util.VariableResolver; import java.util.ArrayList; import java.util.Arrays; @@ -21,8 +22,6 @@ import java.util.List; import jenkins.model.Jenkins; import org.acegisecurity.Authentication; -import org.acegisecurity.context.SecurityContext; -import org.acegisecurity.context.SecurityContextHolder; import org.apache.commons.lang.StringUtils; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.Stapler; @@ -173,17 +172,14 @@ public String url() { if (run == null) { throw new IllegalStateException("Should only be called from value.jelly"); } - SecurityContext oldContext = ACL.impersonate(ACL.SYSTEM); - try { - for (CredentialsStore store : CredentialsProvider.lookupStores(run.getParent())) { - String url = url(store); - if (url != null) { - return url; - } + try (ACLContext ctx = ACL.as(ACL.SYSTEM)) { + for (CredentialsStore store : CredentialsProvider.lookupStores(run.getParent())) { + String url = url(store); + if (url != null) { + return url; } - } finally { - SecurityContextHolder.setContext(oldContext); } + } for (CredentialsStore store: CredentialsProvider.lookupStores(User.current())) { String url = url(store); if (url != null) { diff --git a/src/main/java/com/cloudbees/plugins/credentials/CredentialsProvider.java b/src/main/java/com/cloudbees/plugins/credentials/CredentialsProvider.java index b4746ea08..1b2316759 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/CredentialsProvider.java +++ b/src/main/java/com/cloudbees/plugins/credentials/CredentialsProvider.java @@ -55,6 +55,7 @@ import hudson.model.User; import hudson.model.queue.Tasks; import hudson.security.ACL; +import hudson.security.ACLContext; import hudson.security.Permission; import hudson.security.PermissionGroup; import hudson.security.PermissionScope; @@ -89,8 +90,6 @@ import jenkins.util.Timer; import org.acegisecurity.Authentication; import org.acegisecurity.GrantedAuthority; -import org.acegisecurity.context.SecurityContext; -import org.acegisecurity.context.SecurityContextHolder; import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; import org.acegisecurity.userdetails.UsernameNotFoundException; import org.apache.commons.io.IOUtils; @@ -1668,8 +1667,7 @@ public static void saveAll() throws IOException { Timer.get().execute(new Runnable() { @Override public void run() { - SecurityContext ctx = ACL.impersonate(ACL.SYSTEM); - try { + try (ACLContext ctx = ACL.as(ACL.SYSTEM)) { if (jenkins.getInitLevel().compareTo(InitMilestone.JOB_LOADED) < 0) { LOGGER.log(Level.INFO, "Forced save credentials stores: Initialization has not completed"); while (jenkins.getInitLevel().compareTo(InitMilestone.JOB_LOADED) < 0) { @@ -1740,7 +1738,6 @@ public void run() { } } finally { LOGGER.log(Level.INFO, "Forced save credentials stores: Completed"); - SecurityContextHolder.setContext(ctx); } } }); diff --git a/src/main/java/com/cloudbees/plugins/credentials/SystemCredentialsProvider.java b/src/main/java/com/cloudbees/plugins/credentials/SystemCredentialsProvider.java index d46289b3e..177096f55 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/SystemCredentialsProvider.java +++ b/src/main/java/com/cloudbees/plugins/credentials/SystemCredentialsProvider.java @@ -171,7 +171,6 @@ public List getDomainCredentials() { * @return all the credentials. * @since 1.5 */ - @SuppressWarnings("deprecation") @NonNull public synchronized Map> getDomainCredentialsMap() { return domainCredentialsMap = DomainCredentials.migrateListToMap(domainCredentialsMap, credentials); diff --git a/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java b/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java index b6737d616..b81766325 100644 --- a/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java +++ b/src/main/java/com/cloudbees/plugins/credentials/ViewCredentialsAction.java @@ -121,7 +121,7 @@ public String getIconFileName() { */ @NonNull public List getParentStores() { - List result = new ArrayList(); + List result = new ArrayList<>(); for (CredentialsStore s : CredentialsProvider.lookupStores(getContext())) { if (context != s.getContext() && s.hasPermission(CredentialsProvider.VIEW)) { result.add(s); @@ -137,7 +137,7 @@ public List getParentStores() { */ @NonNull public List getLocalStores() { - List result = new ArrayList(); + List result = new ArrayList<>(); for (CredentialsStore s : CredentialsProvider.lookupStores(getContext())) { if (context == s.getContext() && s.hasPermission(CredentialsProvider.VIEW)) { result.add(s); @@ -154,7 +154,7 @@ public List getLocalStores() { @NonNull @SuppressWarnings("unused") // Jelly EL public List getStoreActions() { - List result = new ArrayList(); + List result = new ArrayList<>(); for (final CredentialsStore s : CredentialsProvider.lookupStores(getContext())) { if (context == s.getContext() && s.hasPermission(CredentialsProvider.VIEW)) { CredentialsStoreAction action = s.getStoreAction(); @@ -176,7 +176,7 @@ public List getStoreActions() { @SuppressWarnings("unused") // Stapler XML/JSON API @Exported(name = "stores") public Map getStoreActionsMap() { - Map result = new TreeMap(); + Map result = new TreeMap<>(); for (CredentialsStoreAction a: getStoreActions()) { result.put(a.getUrlName(), a); } @@ -260,11 +260,8 @@ public Api getApi() { * @return the credential entries. */ public List getTableEntries() { - List result = new ArrayList(); - Item item = context instanceof Item ? (Item) context : null; - ItemGroup group = context instanceof ItemGroup ? (ItemGroup) context - : context instanceof User ? Jenkins.get() : null; - Set ids = new HashSet(); + List result = new ArrayList<>(); + Set ids = new HashSet<>(); for (CredentialsStore p : CredentialsProvider.lookupStores(context)) { if (p.hasPermission(CredentialsProvider.VIEW)) { for (Domain domain : p.getDomains()) { diff --git a/src/test/java/com/cloudbees/plugins/credentials/MockFolderCredentialsProvider.java b/src/test/java/com/cloudbees/plugins/credentials/MockFolderCredentialsProvider.java index c6e1faf05..a6e4ece40 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/MockFolderCredentialsProvider.java +++ b/src/test/java/com/cloudbees/plugins/credentials/MockFolderCredentialsProvider.java @@ -175,7 +175,6 @@ public List getCredentials() { * * @since 3.10 */ - @SuppressWarnings("deprecation") @NonNull public synchronized Map> getDomainCredentialsMap() { return domainCredentialsMap = DomainCredentials.migrateListToMap(domainCredentialsMap, credentials); diff --git a/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java b/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java index 0f6c2630d..48020c8f6 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/SystemCredentialsProviderTest.java @@ -50,7 +50,6 @@ import org.jvnet.hudson.test.TestExtension; import org.kohsuke.stapler.DataBoundConstructor; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java b/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java index fe36071e9..93041f33f 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/cli/CLICommandsTest.java @@ -43,7 +43,6 @@ import java.util.Collections; import java.util.List; import jenkins.model.Jenkins; -import org.hamcrest.Matcher; import org.junit.Before; import org.junit.Rule; import org.junit.Test; diff --git a/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java b/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java index 292ee2d38..0288052dd 100644 --- a/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java +++ b/src/test/java/com/cloudbees/plugins/credentials/fingerpints/FingerprintTest.java @@ -40,7 +40,6 @@ import hudson.model.ParametersAction; import hudson.model.ParametersDefinitionProperty; import java.util.Collections; -import java.util.concurrent.Future; import jenkins.model.Jenkins; import org.junit.Before; import org.junit.Rule;