NetBeansのHudsonサポート

NetBeans 6.7ではHudsonサポートが追加されてます。非常に便利な機能ですがHudsonで権限の設定を行うと上手くいかないようです。あまり調べていないので勘違いの可能性が高いですが。

Hudsonで権限を設定する

行列による権限設定で、匿名ユーザーを使えないようにします。また、ユーザーを1つ作って全権限を与えておきます。この場合は、必ずログインが必要になります。


NetBeansでHudsonサーバを追加する

サービスでHudsonサーバを追加します。

Hudsonサーバを入力します。

パスワードを入力します。(追記: パスワード入力画面を追加)

するとエラーになります。パスワード間違えたわけではないのですが。


サーバのアクセスログは?

Hudsonサーバのアクセスログを見てみると、

"192.168.10.40" "NULL-AUTH-USER" "11/Jun/2009:23:42:33 +0900" "GET /hudson/?checking=redirects HTTP/1.1" 403 259 
"192.168.10.40" "NULL-AUTH-USER" "11/Jun/2009:23:42:39 +0900" "POST /hudson/j_acegi_security_check HTTP/1.1" 302 0 
"192.168.10.40" "NULL-AUTH-USER" "11/Jun/2009:23:42:39 +0900" "POST /hudson/ HTTP/1.1" 403 259       

パスワードを入れた後に2行目のように、"/hudson/j_acegi_security_check"(ログイン時のURL)にPOSTしてから、"/hudson"にPOSTしてHTTPステータスコード403(Forbidden)を受信しています。
これは、認証が必要なのでHudsonの認証を通してから、HudsonのRemote APIを使用して、Hudson上のジョブを取得しようとしているとは思いますが、ログインに成功しても次のアクセスでエラーになっています。セッションが継続していないとかの問題かもしれません。深く追っていないので。

いずれにしろ、Remote APIはHTTP BASIC認証でユーザーを認証するので、ログインする必要はないんじゃないの?と思います。


ちなみに、匿名ユーザーを有効にした場合のアクセスログは、次のような感じになります。

"192.168.10.40" "NULL-AUTH-USER" "12/Jun/2009:00:40:50 +0900" "GET /hudson/?checking=redirects HTTP/1.1" 200 36065
"192.168.10.40" "NULL-AUTH-USER" "12/Jun/2009:00:40:50 +0900" "GET /hudson/api/xml?depth=1&xpath=/&exclude=//primaryView&exclude=//view[name='All']&exclude=//view/job/url&exclude=//view/job/color&exclude=//description&exclude=//job/build&exclude=//healthReport&exclude=//firstBuild&exclude=//keepDependencies&exclude=//nextBuildNumber&exclude=//property&exclude=//action&exclude=//upstreamProject&exclude=//downstreamProject&exclude=//queueItem HTTP/1.1" 200 17629
"192.168.10.40" "NULL-AUTH-USER" "12/Jun/2009:00:40:50 +0900" "GET /hudson/ HTTP/1.1" 200 36065

2行目がRemote APIを使用してXMLを受け取っています。


これが私の環境の問題でなければ、Hudsonの匿名ユーザーは使えるようにしておくしかないようです。