Confluence 10.0 への準備
このドキュメントでは、既存のプラグインおよびアプリに Confluence 10.0 との互換性があるかどうかを確認したい、Confluence 開発者向けの情報をご案内します。
このページで、新しいマイルストーンの公開タイミング、およびその内容をご確認ください。ベータ版のリリース後、正式なリリース ノートを公開します。
最新のマイルストーン
2025 年 7 月 31 日 | 10.0.0-rc2 |
このマイルストーンで問題が見受けられた場合
Confluence EAP のヘッダーで [フィードバック] ボタンを押すか、課題を登録してお知らせください。
On this page:
予定されている変更
このセクションでは、導入予定の変更の概要について紹介します。アプリへの影響の検討にお役立てください。変更の実装が完了したら、そのタイミングと対象のマイルストーンをご案内します。
このリリースは Data Center ライセンスのみをサポートします。サーバー ライセンスをお持ちの場合は、アップグレードのオプションをご確認ください。
Spring と Jakarta のアップグレード
ステータス: 完了
高度なセキュリティ基準を維持し、依存関係をサポートし、最新の状態に保つために、Spring を 6.x ラインに更新します。Spring 6 は、現在使用されている Jakarta 8 との互換性がなくなりました。そのため、Jakarta のバージョンも更新する必要があります。具体的には、EE Platform 10 に更新します。
- Jakarta Servlet 6.0
- Jakarta RESTful Web Services 3.1
- Jakarta Dependency Injection 2.0
- Jakarta Annotations 2.1
- Jakarta Activation 2.1
- Jakarta Mail 2.1
- Jakarta XML Binding 4.0
- Jakarta Bean Validation 3.0
Spring と Jakarta に依存する他のすべてのライブラリも更新しています。
Jakarta API の更新のために必要でない限り、アトラシアンの API には変更を加えません。Jakarta では、アプリに影響する可能性のある API の変更もいくつかあります。
REST エンドポイントにスコープを追加して、OAuth 2.0 2LO を使用する
ステータス: 完了
REST エンドポイントのセキュリティと制御を強化するために、@ScopesAllowed を導入しました。
@ScopesAllowed アノテーションをエンドポイントに追加し、OAuth 2.0 クライアント認証情報トークン (2LO) を使用してアクセスできるようにします。
たとえば、このアノテーションでは、このエンドポイントへのアクセスを提供する前に、アクセス トークンに WRITE スコープが必要です。
@POST
@ScopesAllowed(requiredScope = "WRITE")
public void createEntity(...) {}
サポートされているスコープは以下のとおりです。
- Confluence: 受信リンクの OAuth 2.0 スコープ
- Jira: 受信リンクの OAuth 2.0 スコープ
- Bitbucket: 受信リンクの OAuth 2.0 スコープ
- Bamboo: 受信リンクの OAuth 2.0 スコープ
- Crowd: 受信リンクの設定
Plupload ライブラリの削除
ステータス: 完了
Plupload ライブラリをフロントエンドの依存関係から削除します。Plupload は公開済み API に正式には含まれていませんが、一部の顧客やアプリによって使用された可能性があります。カスタム ソリューションで Plupload を使用している場合、統合を見直して、Plupload がなくても引き続き機能できるようにすることをお勧めします。
Plupload ライブラリが削除されるため、ライブラリで公開されているほとんどの関数やグローバル変数は利用できなくなります。次のようなアップローダー オブジェクトのインスタンス化は避けるようにしてください。
// sample
var uploader = new plupload.Uploader({
runtimes: 'html5',
dragdrop: true,
browse_button: $browserButton.id,
multipart: false,
stop_propagation: true,
max_file_size: 10,
inputFileClazz: "input-file",
multi_selection: true,
container: null
});
また、次のイベントのいずれかに ErrorCodes、mimeTypes、bind、trigger 関数などのグローバル変数を使用することも避けてください。
uploader.bind('Started', <handlerCode>);
uploader.bind('FilesAdded', <handlerCode>);
uploader.bind("BeforeUpload", <handlerCode>);
uploader.bind("UploadProgress", <handlerCode>);
uploader.bind('FileUploaded', <handlerCode>);
uploader.bind("Error", <handlerCode>);
uploader.bind("UploadComplete", <handlerCode>);
// Sample error codes
plupload.FILE_SIZE_ERROR
plupload.FILE_EXTENSION_ERROR
// other commonly used api
plupload.mimeTypes[extension]
plupload.buildUrl(url, params)
plupload.bind(event, function)
plupload.unbind()
plupload.delete()
plupload.trigger(event)
// Also, the File instance and corresponding apis exposed by plupload will also not be available
plupload.File
// Sample usage of Confluence.Uploader
Confluence.Uploader.bind('FileUploaded', <handlerCode>);
Confluence.Uploader.bind('UploadComplete', <handlerCode>);
Confluence.Uploader は内部的には Plupload インスタンスでもあるため、上記は Confluence.Uploader にも適用されます。サポートが終了しているため、Confluence.Uploader.upload() やその他の公開 API は使用しないでください。
Struts 7.0 のアップグレード
ステータス: 完了
Struts MVC フレームワークがバージョン 7.0 にアップグレードされました。
前述の Servlet API の変更に加えて、主な変更点は com.opensymphony.xwork2 パッケージの名前が org.apache.struts2 に変更されたことです。そのようなインポートをすべて置き換えるように注意してください。
<xwork> プラグイン モジュール (Confluence 8.5.3 以降非推奨) のサポートを終了しました。代わりに、機能的に同じ代替モジュールの <struts> を使用してください。
マルチパート アップロード処理ユーティリティ クラス com.atlassian.xwork.FileUploadUtils が OSGi サービス com.atlassian.confluence.struts.StrutsHelper に置き換えられました。これは、ConfluenceActionSupport を拡張するクラスの保護フィールド strutsHelper からもアクセスできます。
さらに、次のアトラシアンの注釈が置き換えられました。
com.atlassian.xwork.ParameterSafe→org.apache.struts2.interceptor.parameter.StrutsParametercom.atlassian.xwork.PermittedMethods→com.atlassian.struts.httpmethod.PermittedMethodscom.atlassian.xwork.RequireSecurityToken→com.atlassian.annotations.security.XsrfProtectionExcludedまたはcom.atlassian.struts.xsrf.XsrfProtectionRequired
OpenSymphony PropertySet の削除
ステータス: 完了
PropertySet を利用する API はすべて読み取り専用になりました。これらの API は Confluence 11.0 で完全に削除されます。
この変更は、ユーザーの PropertySet に基づき、以下の API に影響します。
- (削除済み)
com.atlassian.confluence.user.UserAccessor#getConfluenceUserPreferences - (読み取り専用)
com.atlassian.confluence.user.ConfluenceUserPropertySetFactory - (読み取り専用)
com.atlassian.confluence.user.UserAccessor#getPropertySet
移行して代替 API を使用してください:
com.atlassian.confluence.user.UserAccessor#getUserPreferences(ConfluenceUser)
次の PropertySet データ タイプは、代替 API でも引き続きアクセスできます。
BooleanString(およびText)LongInteger
他のすべてのデータ タイプは Confluence 11.0 から完全にアクセスできなくなるため、できるだけ早く適切な代替品に移行してください。
コンテンツの PropertySet をベースにした次の API も影響を受けます。
- (読み取り専用)
com.atlassian.confluence.core.ConfluencePropertySetManager
アプリ内の必要なデータは、Confluence 11.0 から完全にアクセスできなくなるため、できるだけ早く次の代替手段のいずれかに移行してください。
- (スペース)
com.atlassian.confluence.api.service.content.SpacePropertyService - (コンテンツ)
com.atlassian.confluence.api.service.content.ContentPropertyService
データを移行するには、 com.atlassian.sal.api.upgrade.PluginUpgradeTask API をアプリに実装し、それを OSGi サービスとしてエクスポートすることができます。詳細については、「ユーザー データを新しいユーザー キーに移行するためのプラグイン アップグレード タスクの作成」を参照してください。
Bandana の削除
ステータス: 完了
com.atlassian.bandana.BandanaManager API は読み取り専用になり、API は Confluence 11.0 で完全に削除されます。
Migrate any required data in your apps as soon as possible to one of the following alternatives.
com.atlassian.sal.api.pluginsettings.PluginSettingsFactorycom.atlassian.confluence.api.service.content.SpacePropertyServicecom.atlassian.activeobjects.external.ActiveObjects(For details, see Active objects)
可能な場合、次の Bandana 値タイプは、PluginSettingsFactory に文字数制限以下で自動的にコピーされます。
StringPropertiesList<String>- Set<String>
- Map<String, String>
BooleanIntegerLong
com.atlassian.confluence.setup.xstream.ConfluenceXStreamManager は、Confluence 10.x バージョンの存続期間中、必要に応じて手動でシリアル化および逆シリアル化できることにご注意ください。
To migrate data, you may choose to implement the com.atlassian.sal.api.upgrade.PluginUpgradeTask API in your apps and export it as an OSGi service. For details, see Writing a plugin upgrade task to migrate user data to new user keys.
LESS transformer の削除
ステータス: 完了
セキュリティ、パフォーマンス、そして全体的な開発者体験を向上させるために、LESS Web リソース トランスフォーマーと LESS Maven プラグインの両方を廃止します。
Confluence 8.9 および 9.0 では CSS 変数を使用するようにルック & フィールを更新しました。すべてのスタイルは CSS になるか、ビルド時に CSS にコンパイルされます。また、Java ビルドとランタイムから LESS コンパイルを削除しています。ビルド時には、引き続き、LESS やその他の CSS プリプロセッサを使用できます。
LESS ファイルのランタイム変換をビルド時のコンパイルに置き換えるか、デザイン トークンを使用してネイティブ CSS ファイルに移行することをお勧めします。
詳細と詳細なガイダンスについては、「LESS transformer の削除」をご覧ください。
AUI 10 での非推奨コンポーネントの削除
ステータス: 完了
AJS.Confluence.Binder.insertOnEvent は利用できなくなりました。これは、AJS.template を使用して動的テンプレートを処理し、発生したイベントの指定要素に挿入するものでした。このモジュールの有効な使用法は見つかりませんでした。
マクロ エディターで使用されるオートコンプリート フィールド (autocomplete-space や autocomplete-page など) が、data-template の代わりに data-value-key 属性を受け入れるようになりました。以前は、プレースホルダー付きの文字列 (“long text with {placeholder}" など) を指定できました。プレースホルダーはデータ オブジェクトの値に置き換えられます。内部分析によると、このプロパティは単一のキーを指定するためにのみ使用されていました。置き換えられる属性に追加のテンプレート構文は必要ありません。
Soy テンプレート コード (generalpagelisttableLoop) の未使用部分がフロントエンド アプリ リポジトリから削除されました。初期状態の Soy テンプレートは htmlEscapeQuotesPageSpaceKey、htmlEscapeQuotesPageTitle、pageGetDatePath、insertLink のパラメーターを受け入れていました。これらのパラメーターは、Soy テンプレート ファイル内の対応する未使用のコードとともに削除されました。つまり、以下でこれらのパラメーターを渡すことはできなくなります。
Confluence 10
デザインとアクセシビリティの問題があるいくつかの古い AUI 10 コンポーネントを廃止、削除する作業を進めています。必ず新しいバージョンに移行するか、Atlaskit に移行してください。
古い依存関係をいくつかアップグレードする作業を進めています。
- npm: dompurify を 2.5.7 から 3.1.6+ にアップグレードします。この依存関係は、ツールチップのタイトルに内部的に使用されます。内部で使用されているバージョンを再利用しないでください。
- npm: jquery-form を 2.67 から 4.3.0+ にアップグレードします。このアップグレードにより、jQuery 3 との互換性が向上します。
以下を廃止または削除する作業を進めています。
- テンプレート - AUI ドキュメント - 必要に応じて Soy または I18n システムに移行します。これにより、ツールでサポートする言語の数を減らし、自作のテンプレート言語によるセキュリティ問題の発生を防ぐことができます。
- ダーク モード (旧) - AUI ドキュメント - 新しいダーク テーマを導入したため、使用されていない古いダーク テーマを削除します。最近のガイド (「ダーク テーマに対応した Data Center アプリの準備」) に従い、デザイン トークンを使用してダーク テーマの準備を行った場合は、必要な準備がすべて完了しています。
- オリジナル テーマ - 「ライト」テーマに置き換わるため、すべてのフォールバック値が削除されます。
- ブラウザでネイティブにサポートされるようになった冗長なポリフィル (npm: css.escape、カスタム イベント、
<input>プレースホルダーなど)。 - npm: @atlassian/tipsy - これはメンテナンスが終了しており、バージョン 9.3 以降の AUI ライブラリでは内部で使用していません。必要に応じてバンドルできますが、可能な場合は Floating UI に移行するか、Atlaskit または AUI コンポーネントを使用することをお勧めします。
- npm: trim-extra-html-whitespace - これはメンテナンスが終了しており、公開ドキュメントで内部的にのみ使用されています。ブラウザには不要ですが、必要に応じてバンドルすることもできます。ただし、メンテナンスされている HTML ミニファイアを見つけることをお勧めします。
- 使用頻度が低く、名前が変更された Soy テンプレート、Web リソース、CSS クラス。
ほかには、Node 22 エンジンの要件が変更される予定です。これは、NPM 経由で AUI を使用する場合のみ影響し、実行中の製品には影響しません。
XStream の使用に関するアップデート
ステータス: 完了
Confluence 10.0 のリリースに伴い、XStream の使用に関していくつかの重要な変更が実装されています。
XStream バージョンが 1.4.21 にアップグレードされ、カスタム セキュリティが強化されました。
XStream には、シリアル化または逆シリアル化が禁止されている既知の脆弱なクラスの定義済みブロックリストが追加されました。
カスタム クラス タイプをシリアル化または逆シリアル化する必要がある場合、プラグインのモジュール記述子にこれらのタイプを定義する必要があります。以下に例を示します。
<xstream-security key="xstream-allowlist" name="XStream allow-list set"> <type>java.util.Map</type> </xstream-security>正規表現によってタイプを許可するオプションは削除されました。
なお、プラグインのモジュール記述子による読み込みは、XStream の使用と無関係です。そのため、許可されているタイプが正しく設定されるように、プラグインの初期化中ではなく、必要に応じて後から XStream インスタンス作成してください。
ホバー関連リソースの削除
ステータス: 完了
アトラシアン製品のアクセシビリティを強化するための継続的な取り組みの一環として、次のリソースを削除します。
グローバル バインダー
Confluence.Binder.userHover
WRM Web リソース
confluence.web.resources:userlinkcom.atlassian.confluence.plugins.confluence-frontend:userlink
AMD モジュール
confluence/content-hoverconfluence/hover-user
これらのモジュールは、アクセシビリティのベスト プラクティスと基準を満たしていません。要件に応じて、次の代替方法のいずれかを使用してください。
基本認証を既定で無効化
ステータス: 完了
基本認証による認証を既定で無効にする作業を進めています。これは、わずかに残るユースケースをサポートする代替手段を開発し、成熟させつつ、基本認証を完全に廃止するための第一歩です。
SOAP API の削除
ステータス: 完了
セキュリティを強化して、API 提供を合理化するために、Confluence 5.5 以降で非推奨となっていた SOAP API を廃止します。
アトラシアンは、レガシー API の機能を置き換えるために、REST API を徐々に改善してきました。互換性、セキュリティ、継続的なサポートを確保するために、今後のすべての統合では Confluence REST API に移行することをお勧めします。
XML-RPC API の削除は Confluence 11 で計画されています。
Confluence REST API の使い方に関する詳細は、「Confluence Data Center REST API」をご確認ください。
サポート対象プラットフォームの更新
ステータス: 完了
次のデータベースのサポートを追加します。
- PostgreSQL 17
また、次のサポートを削除します。
- PostgreSQL 15
- Java 17
コンテンツ セキュリティ ポリシーの採用
ステータス: 完了
コンテンツ セキュリティ ポリシー (CSP) の実装と適用の一環として、script-src ヘッダーを有効にします。
これは Confluence 10 ではレポートのみの機能になります。このモードでは、システムがリソースをブロックせずに、違反を記録します。これにより、ユーザー エクスペリエンスに影響を与えることなく、潜在的なセキュリティの問題に関するデータを監視/収集できます。また、nonce のセットアップや、CSP ヘッダーへの独自のオリジン追加を行うための追加のユーティリティも提供します。Confluence 11 では CSP を完全に実装する予定です。
アプリ向けに JavaScript を次のように変更します。
- JavaScript のインライン イベント ハンドラーと
javascript:URL を削除します。 - JavaScript から
eval()メソッドを削除します。 - JavaScript が外部ドメインから来ている場合に備えて、
atlassian-plugin.xmlでさらに設定を追加します。
CSP ヘッダーに独自のオリジンを追加するためのアプリ用モジュール記述子を新たに作成しました。
<csp name="<name>" key="<key>" class="MyCustomCspFragment"/>
CSPFragment は、以下のように CspFragment インターフェイスを拡張することで実装できます。
import com.atlassian.security.csp.api.CspDirective;
import com.atlassian.security.csp.api.CspFragment;
public class MyCustomCspFragment implements CspFragment {
@Override
public Set<CspDirective> getCSPDirectives() {
return Set.of(CspDirective.SCRIPT_SRC);
}
@Override
public Set<URI> getCSPOrigins(CspDirective cspDirective) {
return Set.of(new URI("<mydomain>"));
}
@Override
public Set<String> getUrlPatterns() {
return Set.of("/**"); //Paths to apply
}
}
また、どのカスタム UI テンプレートにも HTTP リクエストに設定されている cspNonce 属性があります。インライン スクリプトに Nonce を追加して、CSP がレポートしないようにする必要があります。
<script nonce='httpRequest.getAttribute(“cspNonce”)'>
//Some code
</script>
詳細な手順については、こちらの CDAC の投稿をご確認ください。
信頼できるアプリの削除
ステータス: 完了
信頼できるアプリは、Confluence 10.0 以降では利用できなくなります。製品への安全でないエントリ ポイントの数を減らすために、信頼できるアプリの削除に取り組んでいます。アトラシアン製品間のこの情報交換方法については、業界のベスト プラクティスに従った、より安全なソリューション (OAuth 2.0 プロトコルなど) に置き換えていく予定です。
グローバル シリアル化フィルター
ステータス: 完了
Java の逆シリアル化、Velocity、Struts、XStream のセントラル ブロックリストに依存するグローバル シリアル化フィルターを実装します。このフィルターは、公開されているガジェット チェーンを通じてリモート コード実行 (RCE) に対して脆弱であると認識されている特定のクラスやパターンをブロックするように設計されています。
アプリ署名を既定で有効化
ステータス: 完了
2 月にお伝えしたとおり、2025 年にアプリ署名をロール アウトします。このリリースでは、アプリ署名は既定で有効化されます。この機能により、セキュリティが向上し、ローカル インスタンスにインストールされたものに対する顧客の信頼が高まります。
Atlassian Marketplace にアプリをアップロードしたら、後はアトラシアンにお任せください。Marketplace がアプリを検証して承認すると、アトラシアンはデフォルトですべてのアプリに署名し、それらを信頼します。追加の操作は必要ありません。アプリ署名はアプリの新規インストールにのみ影響し、以前にインストールされたアプリは検証されません。
非公開のビルドについて詳しくは、こちらの CDAC の投稿を確認してください。
変更の実装内容
このセクションでは、実装済みの変更の詳細について、それらが最初に提供されたマイルストーンごとに紹介します。テストするマイルストーン バージョンの判断にご利用ください。
RC 2 – 2025 年 7 月 31 日
マイルストーン 10.0.0-rc2
含まれるもの
- コンテンツ セキュリティ ポリシーの採用に関するアップデート
- 軽微なバグ修正
RC 1 – 2025 年 7 月 24 日
マイルストーン 10.0.0-rc1
含まれるもの
- 軽微なバグ修正
ベータ 3 - 2025 年 7 月 16 日
マイルストーン 10.0.0-beta3
含まれるもの
- REST エンドポイントにスコープを追加して、OAuth 2.0 2LO を使用する
- 軽微なバグ修正
ベータ – 2025 年 7 月 08 日
マイルストーン 10.0.0-beta2
含まれるもの
- Plupload ライブラリの削除が完了しました
- アプリ署名を既定で有効化
- 古い AUI 10 コンポーネントの削除が完了しました
- 軽微なバグ修正
EAP 20 – 2025 年 6 月 23 日
Milestone 10.0.0-m119
含まれるもの
ホバー関連リソースの削除完了
- LESS transformer の削除完了
- コンテンツ セキュリティ ポリシーの採用完了
- Soy テンプレートの未使用部分の削除
- グローバル シリアル化フィルターの実装
- 軽微なバグ修正
EAP 19 – 2025 年 6 月 16 日
Milestone 10.0.0-m105
含まれるもの
信頼済みアプリの削除が完了しました
既定で基本認証を使用して認証するオプションは無効化されました
軽微なバグ修正
EAP 18 – 2025 年 6 月 10 日
Milestone 10.0.0-m96
含まれるもの
- 軽微なバグ修正
- XStream の使用に関するアップデート
EAP 17 – 2025 年 6 月 2 日
Milestone 10.0.0-m84
含まれるもの
EAP 16 – 2025 年 5 月 26 日
Milestone 10.0.0-m73
含まれるもの
バンダナの削除が完了 (アップグレード タスクでは読み取り専用アクセスが保持される)
プラグイン設定 API の置き換え、実装、および移行タスクが完了
- 軽微なバグ修正
EAP 15 – 2025 年 5 月 19 日
Milestone 10.0.0-m58
含まれるもの
- Spring と Jakarta のアップグレードが完全に完了
- 軽微なバグ修正
EAP 14 – 2025 年 5 月 12 日
Milestone 10.0.0-m57
含まれるもの
- 軽微なバグ修正
EAP 13 – 2025 年 5 月 5 日
Milestone 10.0.0-m53
含まれるもの
- 軽微なバグ修正
EAP 12 – 2025 年 4 月 28 日
Milestone 10.0.0-m50
含まれるもの
- 軽微なバグ修正
EAP 11 – 2025 年 4 月 22 日
Milestone 10.0.0-m44
含まれるもの
- 軽微なバグ修正
EAP 10 – 2025 年 4 月 14 日
Milestone 10.0.0-m38
含まれるもの
- AUI 10 で廃止されたコンポーネントの削除 — オートコンプリート属性の変更
- サーブレット API 4.0 のリークを修正しました
- 軽微なバグ修正
EAP 9 – 2025 年 4 月 7 日
Milestone 10.0.0-m31
含まれるもの
- 軽微なバグ修正
EAP 8 – 2025 年 3 月 31 日
Milestone 10.0.0-m28
含まれるもの
- 軽微なバグ修正
EAP 7 – 2025 年 3 月 24 日
Milestone 10.0.0-m27
含まれるもの
- 軽微なバグ修正
EAP 6 – 2025 年 3 月 17 日
Milestone 10.0.0-m26
含まれるもの
- 軽微なバグ修正
EAP 5 – 2025 年 3 月 10 日
Milestone 10.0.0-m25
含まれるもの
- PostgreSQL 17 のサポートを追加
- PostgreSQL 15 と Java 17 のサポートを終了
- 軽微なバグ修正
EAP 4 – 2025 年 3 月 3 日
Milestone 10.0.0-m23
含まれるもの
AJS.Confluence.Binder.insertOnEventの削除軽微なバグ修正
EAP 3 – 2025 年 2 月 24 日
Milestone 10.0.0-m21
含まれるもの
軽微なバグ修正
EAP 2 – 2025 年 2 月 17 日
Milestone 10.0.0-m20
含まれるもの
軽微なバグ修正
EAP 1 – 2025 年 2 月 10 日
Milestone 10.0.0-m16
含まれるもの
Struts 7.0 のアップグレード
OpenSymphony PropertySet の削除
軽微なバグ修正
最新のドキュメントをお探しの場合は、Confluence EAP スペースで最新のドキュメントをご確認ください。
新しい開発者コミュニティがあるのをご存知ですか? community.developer.atlassian.com/ で、ぜひご確認ください。新しい EAP リリースの公開時にはお知らせカテゴリに投稿する予定です。