Skip to content

Commit f5d61d3

Browse files
Junaid-Ashraf-56Junaid-Ashraf-56timja
authored
Update matrix-auth-plugin docs for v3.2+ syntax (#2718)
Co-authored-by: Junaid-Ashraf-56 <[email protected]> Co-authored-by: Tim Jacomb <[email protected]>
1 parent 298d53c commit f5d61d3

6 files changed

Lines changed: 133 additions & 155 deletions

File tree

demos/global-matrix-auth/README.md

Lines changed: 0 additions & 62 deletions
This file was deleted.

demos/matrix-auth/README.md

Lines changed: 72 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,80 @@
1-
# Configure Matrix Authorization Strategy
1+
# matrix-auth-plugin
22

3-
Basic configuration of the [Matrix Authorization Strategy plugin](https://plugins.jenkins.io/matrix-auth)
3+
Configuration of the [Matrix Authorization Strategy plugin](https://plugins.jenkins.io/matrix-auth)
44

5-
## sample configuration
5+
There are a couple of built-in authorizations to consider.
6+
7+
- **anonymous** - anyone who has not logged in.
8+
- **authenticated** - anyone who has logged in.
9+
10+
## sample-configuration (global matrix)
611

712
```yaml
813
jenkins:
9-
securityRealm:
10-
local:
11-
allowsSignup: false
12-
users:
13-
- id: test
14-
password: test
15-
1614
authorizationStrategy:
1715
globalMatrix:
18-
permissions:
19-
- "Overall/Read:anonymous"
20-
- "Overall/Administer:authenticated"
16+
entries:
17+
- user:
18+
name: "admin"
19+
permissions:
20+
- "Overall/Administer"
21+
- user:
22+
name: "anonymous"
23+
permissions:
24+
- "Overall/Read"
25+
- "Job/Read"
26+
- group:
27+
name: "authenticated"
28+
permissions:
29+
- "Overall/Read"
30+
- "Job/Build"
31+
- "Job/Create"
2132
```
33+
34+
35+
## sample-configuration (project based matrix)
36+
37+
```yaml
38+
jenkins:
39+
authorizationStrategy:
40+
projectMatrix:
41+
entries:
42+
- group:
43+
name: "authenticated"
44+
permissions:
45+
- "View/Delete"
46+
- "View/Read"
47+
- "View/Configure"
48+
- "View/Create"
49+
- "Job/Read"
50+
- "Job/Build"
51+
- "Job/Configure"
52+
- "Job/Create"
53+
- "Job/Delete"
54+
- "Job/Discover"
55+
- "Job/Move"
56+
- "Job/Workspace"
57+
- "Job/Cancel"
58+
- "Run/Delete"
59+
- "Run/Replay"
60+
- "Run/Update"
61+
- "SCM/Tag"
62+
- "Overall/Administer"
63+
- user:
64+
name: "anonymous"
65+
permissions:
66+
- "Overall/Read"
67+
```
68+
69+
Some permissions depends on actual plugin-usage.
70+
For Example: `Release/*:authenticated` is only available if you _use_ the Release plugin in one of your jobs.
71+
72+
## GitHub Authorization
73+
74+
https://plugins.jenkins.io/github-oauth/
75+
76+
You can configure authorization based on GitHub users, organizations, or teams.
77+
78+
- **username** - specific GitHub username.
79+
- **organization** - every user that belongs to a specific GitHub organization.
80+
- **organization*team** - specific GitHub team of a GitHub organization.

integrations/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<!-- no need to be deployed during release, this is a test-only module -->
1515
<maven.deploy.skip>true</maven.deploy.skip>
1616
<jenkins.baseline>2.516</jenkins.baseline>
17-
<jenkins.version>${jenkins.baseline}.1</jenkins.version>
17+
<jenkins.version>${jenkins.baseline}.3</jenkins.version>
1818
</properties>
1919

2020
<dependencyManagement>

integrations/src/test/java/io/jenkins/plugins/casc/GlobalMatrixAuthorizationTest.java

Lines changed: 0 additions & 41 deletions
This file was deleted.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package io.jenkins.plugins.casc;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import hudson.model.Job;
6+
import hudson.security.GlobalMatrixAuthorizationStrategy;
7+
import hudson.security.ProjectMatrixAuthorizationStrategy;
8+
import io.jenkins.plugins.casc.misc.ConfiguredWithReadme;
9+
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithReadmeRule;
10+
import java.util.Set;
11+
import jenkins.model.Jenkins;
12+
import org.jenkinsci.plugins.matrixauth.PermissionEntry;
13+
import org.junit.Rule;
14+
import org.junit.Test;
15+
import org.junit.jupiter.api.Assertions;
16+
17+
/**
18+
* @author Mads Nielsen
19+
* @since 1.0
20+
*/
21+
public class MatrixAuthorizationTest {
22+
23+
@Rule
24+
public JenkinsConfiguredWithReadmeRule j = new JenkinsConfiguredWithReadmeRule();
25+
26+
@Test
27+
@ConfiguredWithReadme("matrix-auth/README.md#0")
28+
public void checkGlobalCorrectlyConfiguredPermissions() {
29+
assertEquals(
30+
"The configured instance must use the Global Matrix Authentication Strategy",
31+
GlobalMatrixAuthorizationStrategy.class,
32+
Jenkins.get().getAuthorizationStrategy().getClass());
33+
GlobalMatrixAuthorizationStrategy gms =
34+
(GlobalMatrixAuthorizationStrategy) Jenkins.get().getAuthorizationStrategy();
35+
36+
Set<PermissionEntry> adminPermission = gms.getGrantedPermissionEntries().get(Job.BUILD);
37+
assertEquals("authenticated", adminPermission.iterator().next().getSid());
38+
39+
Set<PermissionEntry> readPermission = gms.getGrantedPermissionEntries().get(Job.READ);
40+
assertEquals("anonymous", readPermission.iterator().next().getSid());
41+
}
42+
43+
@Test
44+
@ConfiguredWithReadme("matrix-auth/README.md#1")
45+
public void checkProjectCorrectlyConfiguredPermissions() {
46+
Assertions.assertEquals(
47+
ProjectMatrixAuthorizationStrategy.class,
48+
Jenkins.get().getAuthorizationStrategy().getClass(),
49+
"The configured instance must use the Global Matrix Authentication Strategy");
50+
ProjectMatrixAuthorizationStrategy gms =
51+
(ProjectMatrixAuthorizationStrategy) Jenkins.get().getAuthorizationStrategy();
52+
53+
Set<PermissionEntry> adminPermission = gms.getGrantedPermissionEntries().get(Jenkins.ADMINISTER);
54+
Assertions.assertEquals(
55+
"authenticated", adminPermission.iterator().next().getSid());
56+
57+
Set<PermissionEntry> readPermission = gms.getGrantedPermissionEntries().get(Jenkins.READ);
58+
Assertions.assertEquals("anonymous", readPermission.iterator().next().getSid());
59+
}
60+
}

integrations/src/test/java/io/jenkins/plugins/casc/ProjectMatrixAuthorizationTest.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)