将givenName和sn属性连接为Jenkins LDAP插件中的显示名称

时间:2016-03-08 08:48:08

标签: jenkins active-directory ldap jenkins-plugins

我终于通过Jenkins LDAP plugin设法与我公司的Active Directory建立了联系。虽然一切正常但我发现登录用户的显示名称并不像预期的那样。

我在Jenkins安全配置中将字段Display Name LDAP attribute配置为displayName。但我的公司决定将其名称附加到AD中的每个displayName属性。我想摆脱它,因为使用内部Jenkins,我们知道我们在哪里工作:)

我的想法是简单地从另一个AD属性中读取显示名称,但是没有包含姓氏后面的姓氏。 问题是:有没有办法在Jenkins LDAP插件中连接两个或多个AD属性?

我希望拥有“Forename姓氏”,并且我可以选择以下AD属性:

  • name =“Forename Surname”或“forename.surname”(恼人地)
  • displayName =“Forename Surname | Company”
  • givenName =“Forename”
  • sn =“姓氏”

用Java语法说话我只想要givenName + " " + sn。有没有办法在Jenkins LDAP插件中这样做?

1 个答案:

答案 0 :(得分:3)

查看source code of the Jenkins LDAP plugin,它看起来不允许连接。您提供的显示名称属性必须与一个属性的名称完全匹配。

这些是我所指的行(从第729行开始):

Attribute attribute = d.getAttributes().get(getDisplayNameAttributeName());
String displayName = attribute == null ? null : (String) attribute.get();
if (StringUtils.isNotBlank(displayName) && u.getId().equals(u.getFullName()) && !u.getFullName().equals(displayName)) {
    u.setFullName(displayName);
}