Skip to content

Commit be9fd68

Browse files
authored
Refresh plugin for November 2024 (#100)
1 parent 307dc7a commit be9fd68

21 files changed

+189
-195
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @jenkinsci/folder-auth-plugin-developers

.github/dependabot.yml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates
2+
---
13
version: 2
24
updates:
3-
- package-ecosystem: "maven"
4-
directory: "/"
5-
schedule:
6-
interval: "weekly"
7-
reviewers:
8-
- "oleg-nenashev"
9-
- "AbhyudayaSharma"
10-
ignore:
11-
- dependency-name: "org.jenkins-ci.main:jenkins-core"
12-
- dependency-name: "org.jenkins-ci.plugins*"
13-
- dependency-name: "io.jenkins.plugins*"
5+
- package-ecosystem: maven
6+
directory: /
7+
schedule:
8+
interval: monthly
9+
- package-ecosystem: github-actions
10+
directory: /
11+
schedule:
12+
interval: monthly

.github/release-drafter.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# See https://github.com/jenkinsci/.github/blob/master/.github/release-drafter.adoc
2+
---
13
_extends: .github
24
version-template: $MAJOR.$MINOR-$PATCH
35
tag-template: folder-auth-$NEXT_MINOR_VERSION
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# More information about the Jenkins security scan can be found at the developer docs: https://www.jenkins.io/redirect/jenkins-security-scan/
2+
---
3+
name: Jenkins Security Scan
4+
on:
5+
push:
6+
branches:
7+
- master
8+
pull_request:
9+
types: [opened, synchronize, reopened]
10+
workflow_dispatch:
11+
12+
permissions:
13+
security-events: write
14+
contents: read
15+
actions: read
16+
17+
jobs:
18+
security-scan:
19+
uses: jenkins-infra/jenkins-security-scan/.github/workflows/jenkins-security-scan.yaml@v2
20+
with:
21+
java-cache: 'maven' # Optionally enable use of a build dependency cache. Specify 'maven' or 'gradle' as appropriate.
22+
# java-version: 21 # Optionally specify what version of Java to set up for the build, or remove to use a recent default.

.github/workflows/release-drafter.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
# Note: additional setup is required, see https://github.com/jenkinsci/.github/blob/master/.github/release-drafter.adoc
2-
1+
# Automates creation of Release Drafts using Release Drafter
2+
# More Info: https://github.com/jenkinsci/.github/blob/master/.github/release-drafter.adoc
3+
---
34
name: Release Drafter
45

56
on:
@@ -12,6 +13,6 @@ jobs:
1213
runs-on: ubuntu-latest
1314
steps:
1415
# Drafts your next Release notes as Pull Requests are merged into the default branch
15-
- uses: release-drafter/release-drafter@v5
16+
- uses: release-drafter/release-drafter@v6
1617
env:
1718
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,15 @@
11
target
2+
3+
# mvn hpi:run
24
work
35

6+
# IntelliJ IDEA project files
7+
*.iml
8+
*.iws
9+
*.ipr
10+
.idea
11+
412
# Eclipse project files
513
.settings
614
.classpath
7-
.factorypath
815
.project
9-
/nb-configuration.xml
10-
11-
# From https://github.com/github/gitignore/blob/master/Global/JetBrains.gitignore
12-
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
13-
14-
## Directory-based project format
15-
.idea/
16-
# if you remove the above rule, at least ignore user-specific stuff:
17-
# .idea/workspace.xml
18-
# .idea/tasks.xml
19-
# and these sensitive or high-churn files:
20-
# .idea/dataSources.ids
21-
# .idea/dataSources.xml
22-
# .idea/sqlDataSources.xml
23-
# .idea/dynamic.xml
24-
25-
## File-based project format
26-
*.ipr
27-
*.iws
28-
*.iml
29-
30-
## Additional for IntelliJ
31-
out/
32-
33-
# generated by mpeltonen/sbt-idea plugin
34-
.idea_modules/
35-
36-
# generated by JIRA plugin
37-
atlassian-ide-plugin.xml
38-
39-
# generated by Crashlytics plugin (for Android Studio and Intellij)
40-
com_crashlytics_export_strings.xml
41-
42-
# JMH benchmark reports
43-
jmh-report.json

.mvn/extensions.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
<extension>
33
<groupId>io.jenkins.tools.incrementals</groupId>
44
<artifactId>git-changelist-maven-extension</artifactId>
5-
<version>1.3</version>
5+
<version>1.8</version>
66
</extension>
77
</extensions>

Jenkinsfile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
buildPlugin(
33
useContainerAgent: true,
44
configurations: [
5-
[platform: 'linux', jdk: 8],
6-
[platform: 'windows', jdk: 8],
5+
[platform: 'linux', jdk: 21],
6+
[platform: 'windows', jdk: 17],
77
])
8-
runBenchmarks('jmh-report.json')

pom.xml

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
12
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
23
<modelVersion>4.0.0</modelVersion>
34

45
<parent>
56
<groupId>org.jenkins-ci.plugins</groupId>
67
<artifactId>plugin</artifactId>
7-
<version>3.55</version>
8+
<version>5.3</version>
89
<relativePath />
910
</parent>
1011

@@ -14,7 +15,7 @@
1415
<version>${revision}${changelist}</version>
1516
<name>Folder-based Authorization Strategy</name>
1617
<description>Manage access to Folders</description>
17-
<url>https://github.com/jenkinsci/folder-auth-plugin</url>
18+
<url>https://github.com/jenkinsci/${project.artifactId}-plugin</url>
1819

1920
<developers>
2021
<developer>
@@ -27,9 +28,9 @@
2728
<properties>
2829
<revision>1.5</revision>
2930
<changelist>-SNAPSHOT</changelist>
30-
<jenkins.version>2.164.1</jenkins.version>
31-
<java.level>8</java.level>
32-
<configuration-as-code.version>1.35</configuration-as-code.version>
31+
<jenkins.baseline>2.479</jenkins.baseline>
32+
<jenkins.version>${jenkins.baseline}.1</jenkins.version>
33+
<gitHubRepo>jenkinsci/${project.artifactId}-plugin</gitHubRepo>
3334
</properties>
3435

3536
<repositories>
@@ -55,30 +56,37 @@
5556
</licenses>
5657

5758
<scm>
58-
<connection>scm:git:ssh://github.com/jenkinsci/${project.artifactId}-plugin.git</connection>
59-
<developerConnection>
60-
scm:git:ssh://[email protected]/jenkinsci/${project.artifactId}-plugin.git
61-
</developerConnection>
62-
<url>https://github.com/jenkinsci/folder-auth-plugin</url>
59+
<connection>scm:git:https://github.com/${gitHubRepo}.git</connection>
60+
<developerConnection>scm:git:[email protected]:${gitHubRepo}.git</developerConnection>
61+
<url>https://github.com/${gitHubRepo}</url>
6362
<tag>${scmTag}</tag>
6463
</scm>
6564

65+
<dependencyManagement>
66+
<dependencies>
67+
<dependency>
68+
<groupId>io.jenkins.tools.bom</groupId>
69+
<artifactId>bom-${jenkins.baseline}.x</artifactId>
70+
<version>3696.vb_b_4e2d1a_0542</version>
71+
<type>pom</type>
72+
<scope>import</scope>
73+
</dependency>
74+
</dependencies>
75+
</dependencyManagement>
76+
6677
<dependencies>
6778
<dependency>
6879
<groupId>org.jenkins-ci.plugins</groupId>
6980
<artifactId>cloudbees-folder</artifactId>
70-
<version>6.4</version>
7181
</dependency>
7282
<dependency>
7383
<groupId>io.jenkins</groupId>
7484
<artifactId>configuration-as-code</artifactId>
75-
<version>${configuration-as-code.version}</version>
7685
<optional>true</optional>
7786
</dependency>
7887
<dependency>
7988
<groupId>io.jenkins.configuration-as-code</groupId>
8089
<artifactId>test-harness</artifactId>
81-
<version>${configuration-as-code.version}</version>
8290
<scope>test</scope>
8391
</dependency>
8492
</dependencies>

src/main/java/io/jenkins/plugins/folderauth/FolderAuthorizationStrategyManagementLink.java

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.jenkins.plugins.folderauth;
22

33
import com.cloudbees.hudson.plugins.folder.AbstractFolder;
4+
import edu.umd.cs.findbugs.annotations.CheckForNull;
5+
import edu.umd.cs.findbugs.annotations.NonNull;
46
import hudson.Extension;
57
import hudson.model.AbstractItem;
68
import hudson.model.Api;
@@ -23,21 +25,7 @@
2325
import io.jenkins.plugins.folderauth.roles.AgentRole;
2426
import io.jenkins.plugins.folderauth.roles.FolderRole;
2527
import io.jenkins.plugins.folderauth.roles.GlobalRole;
26-
import jenkins.model.Jenkins;
27-
import net.sf.json.JSONArray;
28-
import org.kohsuke.accmod.Restricted;
29-
import org.kohsuke.accmod.restrictions.NoExternalUse;
30-
import org.kohsuke.stapler.QueryParameter;
31-
import org.kohsuke.stapler.Stapler;
32-
import org.kohsuke.stapler.export.ExportedBean;
33-
import org.kohsuke.stapler.interceptor.RequirePOST;
34-
import org.kohsuke.stapler.json.JsonBody;
35-
import org.kohsuke.stapler.verb.GET;
36-
37-
import javax.annotation.CheckForNull;
38-
import javax.annotation.Nonnull;
39-
import javax.annotation.ParametersAreNonnullByDefault;
40-
import javax.servlet.ServletException;
28+
import jakarta.servlet.ServletException;
4129
import java.io.IOException;
4230
import java.util.Arrays;
4331
import java.util.HashSet;
@@ -48,6 +36,17 @@
4836
import java.util.logging.Level;
4937
import java.util.logging.Logger;
5038
import java.util.stream.Collectors;
39+
import javax.annotation.ParametersAreNonnullByDefault;
40+
import jenkins.model.Jenkins;
41+
import net.sf.json.JSONArray;
42+
import org.kohsuke.accmod.Restricted;
43+
import org.kohsuke.accmod.restrictions.NoExternalUse;
44+
import org.kohsuke.stapler.QueryParameter;
45+
import org.kohsuke.stapler.Stapler;
46+
import org.kohsuke.stapler.export.ExportedBean;
47+
import org.kohsuke.stapler.interceptor.RequirePOST;
48+
import org.kohsuke.stapler.json.JsonBody;
49+
import org.kohsuke.stapler.verb.GET;
5150

5251
@Extension
5352
@ExportedBean
@@ -65,7 +64,7 @@ public String getIconFileName() {
6564
/**
6665
* {@inheritDoc}
6766
*/
68-
@Nonnull
67+
@NonNull
6968
@Override
7069
public String getDescription() {
7170
return Messages.FolderBasedAuthorizationStrategy_Description();
@@ -96,7 +95,7 @@ public String getCategoryName() {
9695
return "SECURITY";
9796
}
9897

99-
@Nonnull
98+
@NonNull
10099
@Restricted(NoExternalUse.class)
101100
@SuppressWarnings("unused") // used by index.jelly
102101
public Set<Permission> getGlobalPermissions() {
@@ -105,7 +104,7 @@ public Set<Permission> getGlobalPermissions() {
105104
return getSafePermissions(groups);
106105
}
107106

108-
@Nonnull
107+
@NonNull
109108
@Restricted(NoExternalUse.class)
110109
@SuppressWarnings("unused") // used by index.jelly
111110
public Set<Permission> getFolderPermissions() {
@@ -116,7 +115,7 @@ public Set<Permission> getFolderPermissions() {
116115
return getSafePermissions(groups);
117116
}
118117

119-
@Nonnull
118+
@NonNull
120119
@Restricted(NoExternalUse.class)
121120
@SuppressWarnings("unused") // used by index.jelly
122121
public Set<Permission> getAgentPermissions() {
@@ -245,13 +244,13 @@ public void doAssignSidToAgentRole(@QueryParameter(required = true) String roleN
245244
*/
246245
private void redirect() {
247246
try {
248-
Stapler.getCurrentResponse().forwardToPreviousPage(Stapler.getCurrentRequest());
247+
Stapler.getCurrentResponse2().forwardToPreviousPage(Stapler.getCurrentRequest2());
249248
} catch (ServletException | IOException e) {
250249
LOGGER.log(Level.WARNING, "Unable to redirect to previous page.");
251250
}
252251
}
253252

254-
@Nonnull
253+
@NonNull
255254
@Restricted(NoExternalUse.class)
256255
@SuppressWarnings("unused") // used by index.jelly
257256
public SortedSet<GlobalRole> getGlobalRoles() {
@@ -269,7 +268,7 @@ public SortedSet<GlobalRole> getGlobalRoles() {
269268
* @return full names of all {@link AbstractFolder}s in the system
270269
*/
271270
@GET
272-
@Nonnull
271+
@NonNull
273272
@Restricted(NoExternalUse.class)
274273
public JSONArray doGetAllFolders() {
275274
Jenkins jenkins = Jenkins.get();
@@ -288,7 +287,7 @@ public JSONArray doGetAllFolders() {
288287
*
289288
* @return all Computers in the system
290289
*/
291-
@Nonnull
290+
@NonNull
292291
@Restricted(NoExternalUse.class)
293292
@SuppressWarnings("unused") // used by index.jelly
294293
public List<Computer> getAllComputers() {
@@ -310,7 +309,7 @@ public List<Computer> getAllComputers() {
310309
* @throws IllegalStateException when {@link Jenkins#getAuthorizationStrategy()} is
311310
* not {@link FolderBasedAuthorizationStrategy}
312311
*/
313-
@Nonnull
312+
@NonNull
314313
@Restricted(NoExternalUse.class)
315314
@SuppressWarnings("unused") // used by index.jelly
316315
public SortedSet<FolderRole> getFolderRoles() {
@@ -322,7 +321,7 @@ public SortedSet<FolderRole> getFolderRoles() {
322321
}
323322
}
324323

325-
@Nonnull
324+
@NonNull
326325
@Restricted(NoExternalUse.class)
327326
@SuppressWarnings("unused") // used by index.jelly
328327
public SortedSet<AgentRole> getAgentRoles() {
@@ -383,7 +382,7 @@ public void doDeleteAgentRole(@QueryParameter(required = true) String roleName)
383382
redirect();
384383
}
385384

386-
@Nonnull
385+
@NonNull
387386
static Set<Permission> getSafePermissions(Set<PermissionGroup> groups) {
388387
TreeSet<Permission> safePermissions = new TreeSet<>(Permission.ID_COMPARATOR);
389388
groups.stream().map(PermissionGroup::getPermissions).forEach(safePermissions::addAll);

0 commit comments

Comments
 (0)