11

我在詹金斯和发送邮件时看到了一些奇怪的事情。对于某些用户,邮件被发送到 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

最好的看它的地方是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"}
]

对 bobama 来说一切正常,但请注意 asmith - 电子邮件将发送至 DOMAIN_asmith@company.com(不会发送)

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

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

这些值不是来自用户(都没有登录到詹金斯)——它们是通过 SVN 来自 AD。我被困住了——有人给我指出一个更好的方向吗?

4

3 回答 3

3

这里有几个想法:

  • 如果您更改到 asmith 是最后一个提交者的目录并且您执行svn info .LastChanged Author 会说什么?“DOMAIN\asmith”还是别的什么?对波巴有什么看法?

  • 如果进入 Jenkins 的信息对于所有用户来说确实是相同的,那么差异必须在 Jenkins 内部。我一直在查看MailAddressResolver的来源,它只是一个调用其他解析器的调度类。但是,我不确定在您的配置中调用了哪一个。如果没有一个解析器成功,有一些后备方案会尝试猜测正确的电子邮件。一个看起来很有趣的是'MailAddressResolver questions with SVN & SSPI authentication'。这实际上应该将 'DOMAIN_user@company.com' 替换为 'DOMAIN\user@company.com'

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

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

可能的解决方法

在一次搜索所有方向时,我发现了RegEx 电子邮件插件。它允许您使用正则表达式从用户名生成用户电子邮件地址。也许你可以用这个扭转 Jenkins 的手臂以获得你需要的邮件格式。

于 2012-08-15T18:10:11.143 回答
1

为此,我创建了Additional Identities 插件。在我找到更好的解决方案之前只有一种解决方法,但可以提供帮助。

于 2012-12-17T09:04:37.653 回答
0

我越来越认为这是 svn/sspi 相关的

我想在 linux 上安装 svn,根本不处理 windows...我想我可以将“SSPIOmitDomain On”添加到我的 conf 文件中,然后根本没有域,但这是次优的,因为我d 然后想要转储所有存储库以使用户名匹配。

于 2012-08-09T20:14:29.890 回答