使用Groovy脚本配置矩阵授权插件

时间:2018-08-22 10:31:26

标签: jenkins groovy jenkins-plugins jenkins-groovy

我正在学习编写groovy脚本以配置矩阵授权插件。我编写了此脚本,只有经过身份验证的用户才能访问Jenkins:

import jenkins.model.*
import hudson.security.*
import com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty

try {
    def instance = Jenkins.getInstance()
    def realm = new HudsonPrivateSecurityRealm(false)
    instance.setSecurityRealm(realm)

    def strategy = new hudson.security.GlobalMatrixAuthorizationStrategy()
    strategy.add(Jenkins.ADMINISTER, 'authenticated')
    instance.setAuthorizationStrategy(strategy)

    instance.save()

}
catch(Throwable exc) {
    println '!!! Error configuring jenkins'
    org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new Exception(exc)).printStackTrace()
    println '!!! Shutting down Jenkins to prevent possible mis-configuration from going live'
    jenkins.cleanUp()
    System.exit(1)
}

现在,我想以一种没有人可以访问Jenkins设置区域的方式配置此矩阵插件(即使经过身份验证的用户也无法访问Jenkins设置)。我对此进行了大量研究,但无法继续前进。任何帮助/指针将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

我找到了答案。以下是我缺少Jenkins.READ的上述要求的完整代码。

import jenkins.model.*
import hudson.security.*
import com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty

try {
    def instance = Jenkins.getInstance()
    def realm = new HudsonPrivateSecurityRealm(false)
    instance.setSecurityRealm(realm)

    def strategy = new hudson.security.GlobalMatrixAuthorizationStrategy()
    strategy.add(Jenkins.READ, 'authenticated')
    instance.setAuthorizationStrategy(strategy)

    instance.save()

}
catch(Throwable exc) {
    println '!!! Error configuring jenkins'
    org.codehaus.groovy.runtime.StackTraceUtils.sanitize(new 
    Exception(exc)).printStackTrace()
    println '!!! Shutting down Jenkins to prevent possible mis-configuration from going live'
    jenkins.cleanUp()
    System.exit(1)
}
相关问题