読者です 読者をやめる 読者になる 読者になる

IPv6が有効になっているとJIRAマクロが動作しない??

Confluenceで、JIRAの課題一覽を貼り付けるJIRA Issues Macroを使う設定のメモです。基本的にはサーバ(Ubuntu)に依存する問題だと思います。

JIRA Issuesマクロを使用するために、以下の情報を参考に信頼接続の設定をしました。これはJIRAの方であらかじめで接続を許可するConfluenceを登録する作業です。
JIRA と Confluence 間の信頼接続のセットアップ - Confluence (コンフルエンス) 関連資料

その上で、Confluenceのページなどの入力フォームで

{jiraissues:url=条件を付加したJIRAのURL}

こんな感じでマクロを指定します。ただ、設定ミスがあった場合のエラー内容(JIRAから返ってきたステータスコード)だけでは原因を特定することは難しいので、JIRA側のログを確認する必要があります。

まずは、こんなログが出力されていました。

[500ErrorPage.jsp] Exception caught in 500 page "0:0:0:0:0:0:0:1" does not represent a valid IP address.
com.atlassian.security.auth.trustedapps.IPAddressFormatException: "0:0:0:0:0:0:0:1" does not represent a valid IP address.

IPv6のアドレスを処理しようとしているようなので、IPv6を無効にするために/etc/sysctl.conf に以下を追加しました。

net.ipv6.conf.all.disable_ipv6=1

次は、こんなログが出力されていました。

anonymous 660x127x1 - 127.0.0.1 /sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml [auth.trustedapps.filter.TrustedApplicationFilterAuthenticator] Failed to login trusted application: confluence:9560065 due to: com.atlassian.security.auth.trustedapps.InvalidCertificateException: BAD_XFORWARD_IP;	Request not allowed from IP address: {0};	["127.0.0.1"]

なぜか127.0.0.1が拒否されていました??

JIRAの信頼接続の設定画面は次のようになっていて、最初にアプリケーション名(ConfluenceのURL)を入力すると他のフィールドは自動で指定してくれるのですが、

許可するIPアドレスが127.0.1.1になってました。

これは、Ubuntuでは/etc/hostsの記述でlocalhostだと127.0.0.1、ホスト名だと127.0.1.1を返す設定になっていることが原因のようです。

127.0.0.1       localhost
127.0.1.1       jira

ただし、信頼接続の設定で許可するIPアドレス127.0.0.1に変更しても、同じエラーで拒否されてしまうので(今度はなぜか呼出元が127.0.1.1になる)、127.0.0.1と127.0.1.1を両方登録しておくか、/etc/hostsを変更する必要があるようです。