diff --git a/src/main/java/org/jenkinsci/plugins/GitLabAuthenticationToken.java b/src/main/java/org/jenkinsci/plugins/GitLabAuthenticationToken.java index 1dd9b19..bed9e5c 100755 --- a/src/main/java/org/jenkinsci/plugins/GitLabAuthenticationToken.java +++ b/src/main/java/org/jenkinsci/plugins/GitLabAuthenticationToken.java @@ -33,6 +33,7 @@ of this software and associated documentation files (the "Software"), to deal import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.logging.Level; @@ -101,14 +102,13 @@ public GitLabAuthenticationToken(String accessToken, String gitlabServer, TokenT this.accessToken = accessToken; this.gitLabAPI = GitlabAPI.connect(gitlabServer, accessToken, tokenType); - this.me = gitLabAPI.getUser(); - assert this.me != null; + this.me = Objects.requireNonNull(gitLabAPI.getUser()); setAuthenticated(true); this.userName = this.me.getUsername(); authorities.add(SecurityRealm.AUTHENTICATED_AUTHORITY); - Jenkins jenkins = Jenkins.getInstance(); + Jenkins jenkins = Jenkins.getInstanceOrNull(); if (jenkins != null && jenkins.getSecurityRealm() instanceof GitLabSecurityRealm) { if (myRealm == null) { myRealm = (GitLabSecurityRealm) jenkins.getSecurityRealm(); @@ -152,7 +152,7 @@ public GitlabAPI getGitLabAPI() { @Override public GrantedAuthority[] getAuthorities() { - return authorities.toArray(new GrantedAuthority[authorities.size()]); + return authorities.toArray(new GrantedAuthority[0]); } @Override @@ -192,7 +192,7 @@ public boolean hasOrganizationPermission(String candidateName, String organizati Set v = userOrganizationCache.get(candidateName, unused -> { try { List groups = gitLabAPI.getGroups(); - Set groupsNames = new HashSet(); + Set groupsNames = new HashSet<>(); for (GitlabGroup group : groups) { groupsNames.add(group.getName()); } @@ -237,7 +237,7 @@ public Set myRepositories() { } public Set listToNames(Collection repositories) { - Set names = new HashSet(); + Set names = new HashSet<>(); for (GitlabProject repository : repositories) { // String ownerName = repository.getOwner().getUsername(); // String repoName = repository.getName(); @@ -260,7 +260,7 @@ public boolean isPublicRepository(final String repositoryName) { } }); - return isPublic != null && isPublic.booleanValue(); + return isPublic != null && isPublic; } private static final Logger LOGGER = Logger.getLogger(GitLabAuthenticationToken.class.getName()); @@ -314,7 +314,7 @@ public GitLabOAuthUserDetails getUserDetails(String username) { GitlabUser user = loadUser(username); if (user != null) { // FIXME to implement - List groups = new ArrayList(); + List groups = new ArrayList<>(); try { List gitLabGroups = gitLabAPI.getGroups(); for (GitlabGroup gitlabGroup : gitLabGroups) { @@ -323,7 +323,7 @@ public GitLabOAuthUserDetails getUserDetails(String username) { } catch (IOException e) { LOGGER.log(Level.FINE, e.getMessage(), e); } - return new GitLabOAuthUserDetails(user, groups.toArray(new GrantedAuthority[groups.size()])); + return new GitLabOAuthUserDetails(user, groups.toArray(new GrantedAuthority[0])); } return null; } diff --git a/src/main/java/org/jenkinsci/plugins/GitLabAuthorizationStrategy.java b/src/main/java/org/jenkinsci/plugins/GitLabAuthorizationStrategy.java index 741fe41..978879c 100644 --- a/src/main/java/org/jenkinsci/plugins/GitLabAuthorizationStrategy.java +++ b/src/main/java/org/jenkinsci/plugins/GitLabAuthorizationStrategy.java @@ -109,7 +109,7 @@ public ACL getACL(Job job) { */ @Override public Collection getGroups() { - return new ArrayList(0); + return new ArrayList<>(0); } private Object readResolve() { diff --git a/src/main/java/org/jenkinsci/plugins/GitLabLogoutAction.java b/src/main/java/org/jenkinsci/plugins/GitLabLogoutAction.java index 7f152b6..53085fa 100644 --- a/src/main/java/org/jenkinsci/plugins/GitLabLogoutAction.java +++ b/src/main/java/org/jenkinsci/plugins/GitLabLogoutAction.java @@ -58,8 +58,7 @@ public String getUrlName() { @Restricted(NoExternalUse.class) // jelly only public String getGitLabURL() { - Jenkins j = Jenkins.getInstance(); - assert j != null; + Jenkins j = Jenkins.get(); SecurityRealm r = j.getSecurityRealm(); if (r instanceof GitLabSecurityRealm) { GitLabSecurityRealm glsr = (GitLabSecurityRealm) r; @@ -71,8 +70,7 @@ public String getGitLabURL() { @Restricted(NoExternalUse.class) // jelly only public String getGitLabText() { - Jenkins jenkins = Jenkins.getInstance(); - assert jenkins != null; + Jenkins jenkins = Jenkins.get(); SecurityRealm r = jenkins.getSecurityRealm(); if (r instanceof GitLabSecurityRealm) { return "GitLab"; diff --git a/src/main/java/org/jenkinsci/plugins/GitLabOAuthGroupDetails.java b/src/main/java/org/jenkinsci/plugins/GitLabOAuthGroupDetails.java index fc936a2..c959aba 100644 --- a/src/main/java/org/jenkinsci/plugins/GitLabOAuthGroupDetails.java +++ b/src/main/java/org/jenkinsci/plugins/GitLabOAuthGroupDetails.java @@ -9,8 +9,6 @@ import hudson.security.GroupDetails; -import java.net.URI; - /** * Represent a group from Gitlab as a group in Jenkins terms. * diff --git a/src/main/java/org/jenkinsci/plugins/GitLabRequireOrganizationMembershipACL.java b/src/main/java/org/jenkinsci/plugins/GitLabRequireOrganizationMembershipACL.java index 6a9a525..9b00eb9 100644 --- a/src/main/java/org/jenkinsci/plugins/GitLabRequireOrganizationMembershipACL.java +++ b/src/main/java/org/jenkinsci/plugins/GitLabRequireOrganizationMembershipACL.java @@ -27,6 +27,7 @@ of this software and associated documentation files (the "Software"), to deal package org.jenkinsci.plugins; import java.net.URI; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.logging.Logger; @@ -207,12 +208,12 @@ public boolean hasPermission(Authentication a, Permission permission) { private boolean currentUriPathStartsWith( String specificPath){ String requestUri = requestURI(); - return requestUri==null?false:requestUri.startsWith(specificPath); + return requestUri != null && requestUri.startsWith(specificPath); } private boolean currentUriPathEquals( String specificPath ) { String requestUri = requestURI(); - Jenkins jenkins = Jenkins.getInstance(); + Jenkins jenkins = Jenkins.getInstanceOrNull(); if (jenkins != null && requestUri != null) { String basePath = URI.create(jenkins.getRootUrl()).getPath(); return URI.create(requestUri).getPath().equals(basePath + specificPath); @@ -314,7 +315,7 @@ public GitLabRequireOrganizationMembershipACL(String adminUserNames, this.allowCcTrayPermission = allowCcTrayPermission; this.allowAnonymousReadPermission = allowAnonymousReadPermission; this.allowAnonymousJobStatusPermission = allowAnonymousJobStatusPermission; - this.adminUserNameList = new LinkedList(); + this.adminUserNameList = new LinkedList<>(); String[] parts = adminUserNames.split(","); @@ -322,13 +323,11 @@ public GitLabRequireOrganizationMembershipACL(String adminUserNames, adminUserNameList.add(part.trim()); } - this.adminOrganizationNameList = new LinkedList(); + this.adminOrganizationNameList = new LinkedList<>(); parts= adminOrganizationNames.split(","); - for (String part : parts) { - this.adminOrganizationNameList.add(part); - } + this.adminOrganizationNameList.addAll(Arrays.asList(parts)); - this.organizationNameList = new LinkedList(); + this.organizationNameList = new LinkedList<>(); parts = organizationNames.split(","); diff --git a/src/main/java/org/jenkinsci/plugins/GitLabSecurityRealm.java b/src/main/java/org/jenkinsci/plugins/GitLabSecurityRealm.java index 202f537..44fe824 100644 --- a/src/main/java/org/jenkinsci/plugins/GitLabSecurityRealm.java +++ b/src/main/java/org/jenkinsci/plugins/GitLabSecurityRealm.java @@ -28,9 +28,7 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import java.util.logging.Logger; -import java.util.stream.Collectors; import jenkins.security.SecurityListener; import org.acegisecurity.Authentication; @@ -42,8 +40,6 @@ import org.acegisecurity.userdetails.UserDetails; import org.acegisecurity.userdetails.UserDetailsService; import org.acegisecurity.userdetails.UsernameNotFoundException; -import org.apache.commons.httpclient.URIException; -import org.apache.commons.httpclient.util.ParameterParser; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.http.HttpEntity; @@ -72,7 +68,6 @@ import org.springframework.dao.DataAccessException; import org.springframework.dao.DataRetrievalFailureException; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.thoughtworks.xstream.converters.ConversionException; @@ -274,10 +269,10 @@ public HttpResponse doCommenceLogin(StaplerRequest request, @QueryParameter Stri String redirectOnFinish; if (from != null && Util.isSafeToRedirectTo(from)) { redirectOnFinish = from; - } else if (referer != null && (referer.startsWith(Jenkins.getInstance().getRootUrl()) || Util.isSafeToRedirectTo(referer))) { + } else if (referer != null && (referer.startsWith(Jenkins.get().getRootUrl()) || Util.isSafeToRedirectTo(referer))) { redirectOnFinish = referer; } else { - redirectOnFinish = Jenkins.getInstance().getRootUrl(); + redirectOnFinish = Jenkins.get().getRootUrl(); } List parameters = new ArrayList<>(); @@ -290,8 +285,8 @@ public HttpResponse doCommenceLogin(StaplerRequest request, @QueryParameter Stri } private String buildRedirectUrl(StaplerRequest request, String referer) throws MalformedURLException { - URL currentUrl = new URL(Jenkins.getInstance().getRootUrl()); - List parameters = new ArrayList(); + URL currentUrl = new URL(Jenkins.get().getRootUrl()); + List parameters = new ArrayList<>(); parameters.add(new BasicNameValuePair("state", referer)); URL redirect_uri = new URL(currentUrl.getProtocol(), currentUrl.getHost(), currentUrl.getPort(), @@ -314,7 +309,7 @@ public HttpResponse doFinishLogin(StaplerRequest request) throws IOException { String state = request.getParameter("state"); HttpPost httpPost = new HttpPost(gitlabWebUri + "/oauth/token"); - List parameters = new ArrayList(); + List parameters = new ArrayList<>(); parameters.add(new BasicNameValuePair("client_id", clientID)); parameters.add(new BasicNameValuePair("client_secret", clientSecret)); parameters.add(new BasicNameValuePair("code", code)); @@ -380,8 +375,8 @@ public HttpResponse doFinishLogin(StaplerRequest request) throws IOException { /** * Returns the proxy to be used when connecting to the given URI. */ - private HttpHost getProxy(HttpUriRequest method) throws URIException { - Jenkins jenkins = Jenkins.getInstance(); + private HttpHost getProxy(HttpUriRequest method) { + Jenkins jenkins = Jenkins.get(); ProxyConfiguration proxy = jenkins.proxy; if (proxy == null) { return null; // defensive check @@ -463,8 +458,7 @@ public String getLoginUrl() { protected String getPostLogOutUrl(StaplerRequest req, Authentication auth) { // if we just redirect to the root and anonymous does not have Overall read then we will start a login all over again. // we are actually anonymous here as the security context has been cleared - Jenkins jenkins = Jenkins.getInstance(); - assert jenkins != null; + Jenkins jenkins = Jenkins.get(); if (jenkins.hasPermission(Jenkins.READ)) { // TODO until JEP-227 is merged and core requirement is updated, this will prevent stackoverflow return req.getContextPath() + "/";