jenkins用户中域名和用户名之间的分隔符有时是\,有时_为什么?

the*_*kbb 11 svn sspi active-directory jenkins

我看到jenkins发送一些奇怪的东西并发送邮件.对于某些用户,邮件会发送到DOMAIN_username@company.com - 有些用户没问题.

Jenkins使用AD进行身份验证 - 大多数用户实际上还没有登录jenkins,用户名来自svn.我的svn服务器是使用sspi进行身份验证的windows2008服务器:

# authentication
AuthName "Subversion Authentication"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain COMPANY
SSPIOfferBasic On
Require valid-user
Run Code Online (Sandbox Code Playgroud)

看到它的最好的地方是http://jenkins/job/job-name/1234/api/json看着罪魁祸首

"culprits":[
{"absoluteUrl":"http://jenkins/user/DOMAIN_asmith","fullName":"DOMAIN_asmith"},
{"absoluteUrl":"http://jenkins/user/DOMAIN_bobama","fullName":"DOMAIN\\bobama"}
]
Run Code Online (Sandbox Code Playgroud)

对于bobama来说,事情很好,但请注意asmith - 电子邮件将发送到DOMAIN_asmith@company.com(不会发送)

如果我查看用户配置页面 http://jenkins/user/DOMAIN_asmith/configure

我看到他的电子邮件实际上列为DOMAIN_asmith@company.com,bobama看起来很好.

这些值不是来自用户(也没有登录过jenkins) - 它们是通过SVN来自AD的.我被困 - 有人指出我的方向更好吗?

djf*_*djf 3

这里有几个想法:

  • 如果您更改为 asmith 是最后一个提交者的目录,并且您执行svn info .LastChanged 作者说的话?“DOMAIN\asmith”还是其他什么?这对鲍马说了什么?

  • 如果进入 Jenkins 的信息对于所有用户来说确实是相同的,那么差异一定是在 Jenkins 内部。我一直在查看MailAddressResolver的源代码,它只是一个调用其他解析器的调度类。但是,我不确定您的配置中调用了哪一个。如果没有解析器成功,则存在后备方案,尝试猜测正确的电子邮件。看起来非常有趣的一个是“MailAddressResolver 与 SVN 和 SSPI 身份验证的问题”。这实际上应该将 'DOMAIN_user@company.com' 替换为 'DOMAIN\user@company.com'

  • 我注意到登录了詹金斯的源代码。如果日志尚未表明邮件地址解析过程中存在问题,您可以在 Web 界面中添加更多记录器。

  • 在查看错误报告时,我注意到“给破坏构建的个人的电子邮件被发送到了错误的地址”。这听起来很像您遇到的问题。而且还没有解决

可能的解决方法

在立即向各个方向搜索时,我发现了RegEx Email Plugin。它允许您使用正则表达式从用户名生成用户电子邮件地址。也许你可以用这个扭转詹金斯的手臂来获得你需要的邮件格式。