Remove matrix-auth from support plugin (#845)
Moved to `matrix-auth` in 2.4
This commit is contained in:
parent
1d2dbb050b
commit
850bfa40ac
|
|
@ -1,5 +1,7 @@
|
||||||
# matrix-auth-plugin
|
# matrix-auth-plugin
|
||||||
|
|
||||||
|
Requires `matrix-auth` >= 2.4
|
||||||
|
|
||||||
## sample-configuration (global matrix)
|
## sample-configuration (global matrix)
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jenkins-ci.plugins</groupId>
|
<groupId>org.jenkins-ci.plugins</groupId>
|
||||||
<artifactId>matrix-auth</artifactId>
|
<artifactId>matrix-auth</artifactId>
|
||||||
<version>2.2</version>
|
<version>2.4</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,14 +65,6 @@
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jenkins-ci.plugins</groupId>
|
|
||||||
<artifactId>matrix-auth</artifactId>
|
|
||||||
<version>2.3</version>
|
|
||||||
<optional>true</optional>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<scm>
|
<scm>
|
||||||
<connection>scm:git:git://github.com/jenkinsci/configuration-as-code-plugin.git</connection>
|
<connection>scm:git:git://github.com/jenkinsci/configuration-as-code-plugin.git</connection>
|
||||||
|
|
|
||||||
|
|
@ -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<GlobalMatrixAuthorizationStrategy> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NonNull
|
|
||||||
public String getName() {
|
|
||||||
return "globalMatrix";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<GlobalMatrixAuthorizationStrategy> 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -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 <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
|
|
||||||
*/
|
|
||||||
public abstract class MatrixAuthorizationStrategyConfigurator<T extends AuthorizationContainer> extends BaseConfigurator<T> {
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
@Override
|
|
||||||
public Class getImplementedAPI() {
|
|
||||||
return AuthorizationStrategy.class;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NonNull
|
|
||||||
public Set<Attribute<T, ?>> describe() {
|
|
||||||
return Collections.singleton(
|
|
||||||
new MultivaluedAttribute<T, String>("grantedPermissions", String.class)
|
|
||||||
.getter(MatrixAuthorizationStrategyConfigurator::getGrantedPermissions)
|
|
||||||
.setter(MatrixAuthorizationStrategyConfigurator::setGrantedPermissions)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extract container's permissions as a List of "PERMISSION:sid"
|
|
||||||
*/
|
|
||||||
static Collection<String> 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<String> 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));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -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<ProjectMatrixAuthorizationStrategy> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NonNull
|
|
||||||
public String getName() {
|
|
||||||
return "projectMatrix";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<ProjectMatrixAuthorizationStrategy> 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue