连接给定名称和 sn 属性作为 Jenkins LDAP 插件中的显示名称



我终于设法通过Jenkins LDAP插件连接到我公司的Active Directory。虽然一切正常,但我认识到登录用户的显示名称与预期不符。

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

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

我想拥有"姓氏",并且我有以下 AD 属性可供选择:

  • name = "Forename Surname" 或 "forename.surname" (烦人)
  • displayName ="姓氏 |公司"
  • givenName = "名字"
  • sn = "姓氏"

用Java语法说,我只想givenName + " " + sn.有没有办法在 Jenkins LDAP 插件中做到这一点?

查看 Jenkins LDAP 插件的源代码,它看起来不允许串联。您作为显示名称属性提供的内容必须与一个属性的名称完全匹配。

这些是我所指的行(从第 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);
}

最新更新