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を変更する必要があるようです。