Поиск LDAP из скриптового конвейера Jenkins - PullRequest
0 голосов
/ 22 сентября 2019

мы храним учетную запись GitHub в одном из атрибутов пользователя AD.При получении веб-крюка «Запрос на извлечение» от GitHub я хочу найти пользователя на основе учетной записи GitHub и уведомить пользователя о результатах тестирования.Как это сделать?

1 Ответ

0 голосов
/ 22 сентября 2019

если я вас правильно понимаю, вы хотите принять значение атрибута электронной почты другим атрибутом пользователя.не могу проверить следующий код, но он должен дать вам представление, как это сделать.

import javax.naming.directory.InitialDirContext
import javax.naming.directory.DirContext

Properties ldapProps = [
    'java.naming.factory.initial'        :'com.sun.jndi.ldap.LdapCtxFactory',
    'java.naming.security.authentication':'simple',
    'java.naming.provider.url'           :'ldap://ldap-host:389',
    'java.naming.security.principal'     :'ldap-access-username',
    'java.naming.security.credentials'   :'ldap-access-password',
] as Properties


String user          = 'user-to-search'
String attr          = 'mail'           //attribute name for email could be different in your ldap
String ldapFilter    = "CN=${user}"     //put instead of `CN` git attribute
String[] attrValues  = []               //array because could be several values for one attribute

DirContext ldapCtx = new InitialDirContext(ldapProps)
ldapCtx.search("", ldapFilter, null).each{ldapUser->
    def ldapAttr = ldapUser.getAttributes().get(attr)
    attrValues = ldapAttr?.getAll()?.collect{it.toString()}
}
ldapCtx.close()
println "found values: $attrValues"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...