如何在Jenkins Groovy中获取ldap组

如何在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

我正在使用LDAP插件在Jenkins中配置LDAP

我想在作业中添加一个参数,列出所有ldap组

Groovy将是获取ldap goups的最简单的方法

如何使用它

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 ""