Confluence が非英語システムにホストされているときに CAPTCHA の画像が表示されない
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
症状
ログイン試行に繰り返し失敗したあと、CAPTCHA が表示されるべきところで破損した画像リンクが表示される
atlassian-confluence.log
に次のメッセージが表示される。
2012-10-05 15:01:27,053 ERROR [http-8090-1] [[Standalone].[localhost].[/].[jcaptcha]] log Servlet.service() for servlet jcaptcha threw exception
com.octo.captcha.CaptchaException: word is too tall: try to use less letters, smaller font or bigger background: text bounds = {text=tasble
...
原因 1:
システムのデフォルトのエンコーディングが UTF-8 以外に設定されており、それにより、CAPTCHA 画像の生成時に利用されるフォントが通常とは異なるものになっています。このフォントが生成する CAPTCHA 文字列が画像のサイズよりも大きいため、例外が発生する。これは中国語/韓国語のサーバーでよく見られます。
Resolution 1:
「システム プロパティの設定」にある手順を使い、Confluence に次のシステム プロパティを追加します。
-Dfile.encoding=UTF-8
Confluence を再起動します。
Resolution 2:
If the issue is not resolved after following Resolution 1, then it is worth checking the language set for Confluence. This is common for Chinese/Korean servers.
- This can be checked by checking JVM flag values. For example, if you face this issue and if the JVM flags are set to -Duser.language=ko -Duser.country=KR , change it to -Duser.language=en -Duser.country=US
- Restart Confluence and check if the issue is resolved.