diff --git a/demos/global-matrix-auth/README.md b/demos/global-matrix-auth/README.md index 331e52dd2d..ea9fb1a924 100644 --- a/demos/global-matrix-auth/README.md +++ b/demos/global-matrix-auth/README.md @@ -1,5 +1,7 @@ # matrix-auth-plugin +Requires `matrix-auth` >= 2.4 + ## sample-configuration (global matrix) ```yaml diff --git a/integrations/pom.xml b/integrations/pom.xml index 20c2e99471..c83a90d4d2 100644 --- a/integrations/pom.xml +++ b/integrations/pom.xml @@ -179,7 +179,7 @@ org.jenkins-ci.plugins matrix-auth - 2.2 + 2.4 test diff --git a/support/pom.xml b/support/pom.xml index db96c1b7a9..38d6c9543b 100644 --- a/support/pom.xml +++ b/support/pom.xml @@ -65,14 +65,6 @@ true - - org.jenkins-ci.plugins - matrix-auth - 2.3 - true - - - scm:git:git://github.com/jenkinsci/configuration-as-code-plugin.git diff --git a/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/GlobalMatrixAuthorizationStrategyConfigurator.java b/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/GlobalMatrixAuthorizationStrategyConfigurator.java deleted file mode 100644 index aef1713c55..0000000000 --- a/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/GlobalMatrixAuthorizationStrategyConfigurator.java +++ /dev/null @@ -1,43 +0,0 @@ -package io.jenkins.plugins.casc.support.matrixauth; - -import edu.umd.cs.findbugs.annotations.CheckForNull; -import edu.umd.cs.findbugs.annotations.NonNull; -import hudson.Extension; -import hudson.security.GlobalMatrixAuthorizationStrategy; -import io.jenkins.plugins.casc.ConfigurationContext; -import io.jenkins.plugins.casc.ConfiguratorException; -import io.jenkins.plugins.casc.model.CNode; -import io.jenkins.plugins.casc.model.Mapping; -import org.kohsuke.accmod.Restricted; -import org.kohsuke.accmod.restrictions.NoExternalUse; - -/** - * @author Mads Nielsen - * @since TODO - */ -@Extension(optional = true, ordinal = 1) -@Restricted(NoExternalUse.class) -public class GlobalMatrixAuthorizationStrategyConfigurator extends MatrixAuthorizationStrategyConfigurator { - - @Override - @NonNull - public String getName() { - return "globalMatrix"; - } - - @Override - public Class getTarget() { - return GlobalMatrixAuthorizationStrategy.class; - } - - @Override - public GlobalMatrixAuthorizationStrategy instance(Mapping mapping, ConfigurationContext context) throws ConfiguratorException { - return new GlobalMatrixAuthorizationStrategy(); - } - - @CheckForNull - @Override - public CNode describe(GlobalMatrixAuthorizationStrategy instance, ConfigurationContext context) throws Exception { - return compare(instance, new GlobalMatrixAuthorizationStrategy(), context); - } -} diff --git a/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/MatrixAuthorizationStrategyConfigurator.java b/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/MatrixAuthorizationStrategyConfigurator.java deleted file mode 100644 index 79972e520d..0000000000 --- a/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/MatrixAuthorizationStrategyConfigurator.java +++ /dev/null @@ -1,59 +0,0 @@ -package io.jenkins.plugins.casc.support.matrixauth; - -import edu.umd.cs.findbugs.annotations.NonNull; -import hudson.security.AuthorizationStrategy; -import hudson.security.Permission; -import io.jenkins.plugins.casc.Attribute; -import io.jenkins.plugins.casc.BaseConfigurator; -import io.jenkins.plugins.casc.impl.attributes.MultivaluedAttribute; -import io.jenkins.plugins.casc.util.PermissionFinder; -import java.util.Collection; -import java.util.Collections; -import java.util.Set; -import java.util.stream.Collectors; -import org.jenkinsci.plugins.matrixauth.AuthorizationContainer; - -/** - * @author Nicolas De Loof - */ -public abstract class MatrixAuthorizationStrategyConfigurator extends BaseConfigurator { - - @NonNull - @Override - public Class getImplementedAPI() { - return AuthorizationStrategy.class; - } - - - @Override - @NonNull - public Set> describe() { - return Collections.singleton( - new MultivaluedAttribute("grantedPermissions", String.class) - .getter(MatrixAuthorizationStrategyConfigurator::getGrantedPermissions) - .setter(MatrixAuthorizationStrategyConfigurator::setGrantedPermissions) - ); - } - - /** - * Extract container's permissions as a List of "PERMISSION:sid" - */ - static Collection getGrantedPermissions(AuthorizationContainer container) { - return container.getGrantedPermissions().entrySet().stream() - .flatMap( e -> e.getValue().stream().map(v -> e.getKey()+":"+v)) - .collect(Collectors.toList()); - } - - /** - * Configure container's permissions from a List of "PERMISSION:sid" - * @param container - * @param permissions - */ - static void setGrantedPermissions(AuthorizationContainer container, Collection permissions) { - permissions.forEach(p -> { - final int i = p.indexOf(':'); - final Permission permission = PermissionFinder.findPermission(p.substring(0, i)); - container.add(permission, p.substring(i+1)); - }); - } -} diff --git a/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/ProjectMatrixAuthorizationStrategyConfigurator.java b/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/ProjectMatrixAuthorizationStrategyConfigurator.java deleted file mode 100644 index 3cb24a66bd..0000000000 --- a/support/src/main/java/io/jenkins/plugins/casc/support/matrixauth/ProjectMatrixAuthorizationStrategyConfigurator.java +++ /dev/null @@ -1,40 +0,0 @@ -package io.jenkins.plugins.casc.support.matrixauth; - -import edu.umd.cs.findbugs.annotations.CheckForNull; -import edu.umd.cs.findbugs.annotations.NonNull; -import hudson.Extension; -import hudson.security.ProjectMatrixAuthorizationStrategy; -import io.jenkins.plugins.casc.ConfigurationContext; -import io.jenkins.plugins.casc.ConfiguratorException; -import io.jenkins.plugins.casc.model.CNode; -import io.jenkins.plugins.casc.model.Mapping; -import org.kohsuke.accmod.Restricted; -import org.kohsuke.accmod.restrictions.NoExternalUse; - -@Extension(optional = true, ordinal = 1) -@Restricted(NoExternalUse.class) -public class ProjectMatrixAuthorizationStrategyConfigurator extends MatrixAuthorizationStrategyConfigurator { - - @Override - @NonNull - public String getName() { - return "projectMatrix"; - } - - @Override - public Class getTarget() { - return ProjectMatrixAuthorizationStrategy.class; - } - - @Override - public ProjectMatrixAuthorizationStrategy instance(Mapping mapping, ConfigurationContext context) throws ConfiguratorException { - return new ProjectMatrixAuthorizationStrategy(); - } - - @CheckForNull - @Override - public CNode describe(ProjectMatrixAuthorizationStrategy instance, ConfigurationContext context) throws Exception { - return compare(instance, new ProjectMatrixAuthorizationStrategy(), context); - } - -}