groovy - Jenkins:如何在 groovy 脚本中获取用户 LDAP 组

标签 groovy jenkins ldap

我已经为 Jenkins 中的自助服务部署设置了参数化作业。 用户可以选择应用程序的版本和要部署到的环境。 当前向用户显示的可用环境只是一个静态字符串列表(选择参数)。

现在我想根据当前用户的 LDAP 组将部署限制到某些环境。

jenkins 中的用户页面显示如下:

Jenkins Benutzer ID:maku

群组:

adm_proj_a
nexus_admin
ROLE_ADM_PROJ_XY
ROLE_BH_KK

如何在 groovy 脚本中获取这些组?

我尝试使用动态选择参数(脚本程序)并使用 groovy 脚本获取 LDAP 组,但没有找到通过 Jenkins-API 的方法。

欢迎任何提示

最佳答案

User.getAuthorities() 要求调用者具有 ADMINISTER 权限。 (http://javadoc.jenkins-ci.org/hudson/model/User.html#getAuthorities())

另一种方法是直接查询 SecurityRealm。

import hudson.model.*
import jenkins.model.*

def userid = User.current().id
def auths = Jenkins.instance.securityRealm.loadUserByUsername(userid)
            .authorities.collect{a -> a.authority}
if("adm_proj_a" in auths){
...

关于groovy - Jenkins:如何在 groovy 脚本中获取用户 LDAP 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279864/

相关文章:

grails - Requestmap无法按预期运行

java - Camel + Groovy + Spring DSL 的奇怪行为

Jenkins下的Maven toolchains.xml位置

php - CakePHP LDAP/MySQL 混合模型

java - 当内存分析器(MAT)中有许多定义的类和实例数时,这意味着什么?

jdbc - 使用groovy Sql批量插入?

python - 通过 Jenkins 运行时在 docker 中产生 "java gateway process exited before sending the driver its port number"

Jenkins 在 "exit 0"状态后构建陷入困境,并且需要很长时间才能退出

ruby-on-rails - 设计 LDAP Authenticatable 绑定(bind)不正确?

java - 如何在 Java 8 中解析 LDAP 通用时间?