我需要知道如何手动编码控制 Hudson 身份验证的 LDAP managerPassword:
<securityRealm class="hudson.security.LDAPSecurityRealm">
<server>ldap.example.org</server>
<rootDN>dc=example,dc=org</rootDN>
<userSearchBase>ou=People</userSearchBase>
<userSearch>uid={0}</userSearch>
<groupSearchBase>ou=Groups</groupSearchBase>
<managerDN>cn=admin,dc=example,dc=org</managerDN>
<managerPassword>{HOW DO I ENCODE THIS?}</managerPassword>
</securityRealm>
这个问题已经在这里提出过了:http://jenkins.361315.n4.nabble.com/How-to-encode-the-LDAP-managerPassword-td2295570.html
答案是通过 hudson web 界面配置 managerPassword 字段。我们遇到的问题是,为了配置 LDAP,必须对 hudson 进行身份验证,但我们无法做到这一点,因为我们的 LDAP 身份验证目前已损坏(LDAP 和 hudson 配置之间的密码不匹配)。
有人可以解释一下如何手动编码 LDAP 管理器密码吗?
谢谢
答案1
密码值经过 base64 编码。您可以在线对其进行编码:www.base64encode.org并在这里解码:www.base64decode.org。
答案2
我找到了如何做到这一点。这只是 base64。但是 linux 的控制台 base64 添加了填充字符,而在 jenkins 中,config.xml 的存储没有它。所以我不得不使用 perl 的 base64:
perl -e 'use MIME::Base64; print encode_base64('password');'
答案3
尝试使用slappasswd
。它应该会给你类似的结果rootpw {SSHA}vv2y+i6V6esazrIv70xSSnNAJE18bb2u
。
在 Debian 上:apt-get install slapd
。