如何在Jenkins Groovy中获取ldap组
我正在使用LDAP插件在Jenkins中配置LDAP 我想在作业中添加一个参数,列出所有ldap组 Groovy将是获取ldap goups的最简单的方法 如何使用它如何在Jenkins Groovy中获取ldap组,jenkins,groovy,ldap,Jenkins,Groovy,Ldap,我正在使用LDAP插件在Jenkins中配置LDAP 我想在作业中添加一个参数,列出所有ldap组 Groovy将是获取ldap goups的最简单的方法 如何使用它 Jenkins.instance.securityRealm.loadGroupByGroupname(name) 如果您只需要从Jenkins实例提取所有ldap组,那么应该获取所有现有用户,然后提取每个用户的所有组(权限)。Jenkins在每个用户对象上存储ldap组 def users = User.getAll() de
Jenkins.instance.securityRealm.loadGroupByGroupname(name)
如果您只需要从Jenkins实例提取所有ldap组,那么应该获取所有现有用户,然后提取每个用户的所有组(权限)。Jenkins在每个用户对象上存储ldap组
def users = User.getAll()
def ldap_groups = [:]
users.each { user ->
//get all properties for each user
user.getAllProperties().each { prop ->
//if prop jenkins.security.LastGrantedAuthoritiesProperty exists
if (prop.class.canonicalName == "jenkins.security.LastGrantedAuthoritiesProperty") {
//extract all ldap groups (authorities)
prop.getAuthorities().each { group ->
//populate dictionary with groups and users
if (ldap_groups.containsKey(group)) {
ldap_groups[group] += [user.getId()]
} else {
ldap_groups[group] = [user.getId()]
}
}
}
}
}
//result
ldap_groups.each { g, u ->
println "Group: " + g
print "Users:"
u.each {
println "\t" + it
}
}
println ""
如果您只需要从Jenkins实例提取所有ldap组,那么应该获取所有现有用户,然后提取每个用户的所有组(权限)。Jenkins在每个用户对象上存储ldap组
def users = User.getAll()
def ldap_groups = [:]
users.each { user ->
//get all properties for each user
user.getAllProperties().each { prop ->
//if prop jenkins.security.LastGrantedAuthoritiesProperty exists
if (prop.class.canonicalName == "jenkins.security.LastGrantedAuthoritiesProperty") {
//extract all ldap groups (authorities)
prop.getAuthorities().each { group ->
//populate dictionary with groups and users
if (ldap_groups.containsKey(group)) {
ldap_groups[group] += [user.getId()]
} else {
ldap_groups[group] = [user.getId()]
}
}
}
}
}
//result
ldap_groups.each { g, u ->
println "Group: " + g
print "Users:"
u.each {
println "\t" + it
}
}
println ""