One-way sync (iCal) synchronization might not work when rate limiting is enabled in Confluence
プラットフォームについて: 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 は除く
要約
When Confluence rate-limiting is enabled it could limit the requests coming from Team Calendar synchronization which might cause not having the meetings/events in third-party calendars since the synchronization requests might be rejected as well.
環境
Confluence server and Data Center version 7.13.5
診断
In the application logs:
WARN [http-nio-8090-exec-4] [ratelimiting.internal.filter.RateLimitFilter] lambda$userHasBeenRateLimited$0 User [rate_limiting_anonymous_user] has been rate limited
-- url: /rest/calendar-services/1.0/calendar/export/subcalendar/private/calendar.ics | traceId: 355081bc9cce042a | userName: anonymous
WARN [http-nio-8090-exec-11] [ratelimiting.internal.filter.RateLimitFilter] lambda$userHasBeenRateLimited$0 User [rate_limiting_anonymous_user] has been rate limited
-- url: /rest/calendar-services/1.0/calendar/export/subcalendar/private/calendar.ics | traceId: 4c68b59b0314d2f6 | userName: anonymous
When ICAL URL is tested on a browser Confluence returns below:
原因
When a third-party calendar is subscribed to Confluence Team Calendar, it sends synchronization requests to Confluence by using an anonymous user. If the Rate Limiting feature is enabled it rejects the request coming from the third-party calendar and might cause not having the meetings in third-party calendars.
ソリューション
例外の追加
同様に例外は、他のユーザーよりも多くのリクエストを実際に必要とするユーザーのための特別な制限です。選択した例外は、グローバル設定よりも優先されます。
例外を追加または編集した後、変更はすぐに反映されますが、新しい設定がユーザーに適用されるには最大で 1 分かかります。
例外を追加するには、次の手順を実行します。
- [例外] タブに移動します。
- [例外の追加] をクリックします。
- Find the Anonymous user and choose their new settings.
- The options available here are just the same as in global settings: Allow unlimited requests, or Assign a custom limit.
- 変更を [保存] します。
後から例外を編集したい場合は、[例外] タブでユーザー名の横にある [編集] をクリックします。
Allow listing URLs and resources
For Rate Limiting there is a way to allow whole URLs and resources on your Confluence instance using a system property. This should be used as a quick fix for something that gets rate limited but shouldn’t.
特定の URL をレート制限から除外することを許可するには、次の手順を実行します。
- Confluence を停止します。
com.atlassian.ratelimiting.whitelisted-url-patterns
システム プロパティを追加し、値を URL のカンマ区切りリストに設定します。例:CATALINA_OPTS="-Dcom.atlassian.ratelimiting.whitelisted-url-patterns=/**/rest/applinks/**,/**/rest/capabilities,/**/rest/calendar-services/** ${CATALINA_OPTS}"
システム プロパティの追加方法は、Confluence の実行方法によって異なります。詳細については、「システム プロパティを設定する」を参照してください。- Confluence を再起動します。
Disabling Rate Limiting
If the rate limit is controlled by an intermediate layer like reverse proxy, load balancer, or firewall, you may also disable the rate-limiting feature by following the below steps:
- Navigate to > General Configuration > Rate Limiting,
- Select Disabled,
- Then Save your changes.
The page should look like the below: