Searching in Confluence with version 6.14 and higher fails silently on specific browsers
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
問題
Confluence 6.14 and higher versions were shipped with a new, expanded search panel.
However, attempting to search in Firefox and Internet Explorer does not seem to work.
Hovering the search bar will give (g, gor /), and entering text will trigger the infinite spinning wheels
atlassian-confluence.log
に次のメッセージが出力される。
2019-02-18 17:09:22,192 WARN [http-nio-26141-exec-7] [common.security.jersey.XsrfResourceFilter] passesAdditionalBrowserChecks Additional XSRF checks failed for request: http://localhost:8090/rest/analytics/1.0/publish/bulk , origin: null , referrer: http://mycompany/ , credentials in request: true , allowed via CORS: false
-- referer: http://mycompany/ | url: /c6141/rest/analytics/1.0/publish/bulk | traceId: 2ddf5db016174aa4 | userName: admin
診断
The error message shows XSRF (Cross-Site Request Forgery) warnings. This is logged when the request's origin does not match its target. More information about this here: Cross-Site Request Forgery (CSRF) protection changes in Atlassian REST
Confluence may be running behind a proxy, or SSL, or even port forwarding.
原因
When running Confluence behind a reverse proxy, Tomcat must be made aware of the reverse proxy - this ensures that responses from Tomcat have the correct hostname information. During the upgrade of Confluence, the HTTP ports used in server.xml
are migrated, but nothing else is - so the reverse proxy information will have been lost.
From the Upgrading Confluence notes:
アップグレードの実行中に、ウィザードは既存の Confluence インストールから下記のファイルを移行します。
- server.xml ファイルの TCP ポート値 。
- confluence-init.properties (confluence.home プロパティ) および setenv.sh/setenv.bat ファイル (CATALINA_OPTS または JAVA_OPTS パラメータ) のカスタム値。
他の設定やカスタマイズ (server.xml ファイル内の他の変更を含む) はアップグレード時に移行されないため、手動で再適用する必要があります。詳細については以降をご確認ください。
アップグレード プロセスの一環として、適切なオペレーションのため、デフォルト状態に行ったすべての変更をインスタンスに再適用する必要があります。
ソリューション
Ensure that Confluence has been configured to be aware of the reverse proxy. At a minimum, the proxyName
and proxyPort
parameters are required. If using HTTPS, the scheme="https"
parameter should be included as well. These parameters will need to be added to the HTTP connector that is serving requests.
例:
Confluence 5.8 のデフォルトの HTTP コネクタは次のとおりです。
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
maxThreads="200" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol" />
If you were configuring this proxy to be used at https://mycompany.com/ you would configure it like this:
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
maxThreads="200" minSpareThreads="10"
enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
proxyName="mycompany.com" proxyPort="443" scheme="https" />
Other issues that's caused by XSRF Check Failed: