使用 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 设置)。我对此进行了大量研究,但无法继续推进。任何帮助/指针将不胜感激。谢谢!

拉曼巴良

我找到了答案。以下是我缺少 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)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章