11

I'm seeing some odd things with jenkins and sending mail. For some users mail is sent to DOMAIN_username@company.com - some are fine.

Jenkins is using AD for authentication - most users haven't actually logged into jenkins, the username comes from svn. my svn server is a windows2008 server using sspi to authenticate:

# authentication
AuthName "Subversion Authentication"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIDomain COMPANY
SSPIOfferBasic On
Require valid-user

the best place to see it is in the http://jenkins/job/job-name/1234/api/json and look at culprits

"culprits":[
{"absoluteUrl":"http://jenkins/user/DOMAIN_asmith","fullName":"DOMAIN_asmith"},
{"absoluteUrl":"http://jenkins/user/DOMAIN_bobama","fullName":"DOMAIN\\bobama"}
]

Things are goign to work fine for bobama, but note asmith - the email will go to DOMAIN_asmith@company.com (which won't deliver)

If I look at the users configuration page http://jenkins/user/DOMAIN_asmith/configure

I see his email is actually listed as DOMAIN_asmith@company.com, bobama looks fine.

These values aren't coming from the user (neither has ever logged in to jenkins) - they're coming from AD by way of SVN. I'm stuck - anyone point me in a better direction?

4

3 に答える 3

3

ここにいくつかのアイデアがあります:

  • asmith が最後のコミッターだったディレクトリに移動svn info .して、LastChanged の作成者は何と言いますか? 「DOMAIN\asmith」か何か?ボバマは何と言っていますか?

  • Jenkins に送られる情報がすべてのユーザーにとって本当に同一である場合、違いは Jenkins 内にあるはずです。私はMailAddressResolverのソースを見てきました。これは、他のリゾルバーを呼び出す単なるディスパッチ クラスです。ただし、構成でどちらが呼び出されるかはわかりません。どのリゾルバーも成功しない場合に、正しいメールを推測しようとするフォールバック シナリオがあります。非常に興味深いものの 1 つは、「SVN & SSPI 認証に関する MailAddressResolver の問題」です。これにより、実際には「DOMAIN_user@company.com」が「DOMAIN\user@company.com」に置き換えられます。

  • Jenkins のソースにログインしていることに気付きました。メールアドレスの解決中にログが問題をまだ示していない場合は、Web インターフェイスでロガーを追加できます。

  • バグレポートを調べていると、「ビルドを壊した個人への電子メールが間違ったアドレスに送信されている」ことに気付きました。これは、あなたが経験している問題によく似ています。そしてそれは未解決です。

考えられる回避策

一度にあらゆる方向を検索しているときに、RegEx Email Pluginを発見しました。正規表現を使用して、ユーザー名からユーザーの電子メール アドレスを生成できます。おそらく、これで 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 ファイルに追加して、ドメインをまったく持たないようにできると思いますが、これは次善の策です。次に、すべてのリポジトリをダンプして、ユーザー名を一致させたいと考えています。

于 2012-08-09T20:14:29.890 に答える