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

时间:2012-07-27 20:25:10

标签: svn jenkins active-directory sspi

我看到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

最好看的地方是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看起来很好。

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

3 个答案:

答案 0 :(得分:3)

以下是一些想法:

  • 如果您更改为asmith是最后一个提交者的目录,那么svn info . LastChanged作者会说什么? “DOMAIN \ asmith”或其他什么?它对bobama说了什么?

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

  • 我注意到登录Jenkins的来源。如果日志在邮件地址解析期间尚未指出问题,则可以在Web界面中add more loggers

  • 在浏览错误报告时,我注意到'E-mail to individuals who broke the build is sent to wrong address'。这听起来很像你遇到的问题。而且未解决

可能的解决方法

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

答案 1 :(得分:1)

我为此目的创建了Additional Identities plugin。只有解决方法才能找到更好的解决方案,但可以提供帮助。

答案 2 :(得分:0)

我越来越多地认为这是svn / sspi的关联

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