悪意のあるアドオンを手動で削除する方法
目的
University Plugin Manager が動作していないときに、悪意のあるアドオンを手動で無効化または削除します。Confluence は、問題のあるアドオンによって Confluence が利用できなくなるのを自身で防止するための、ある程度の機能を備えています。しかしながら、この機能がアドオンによって管理される場合があります。このページでは、Confluence の管理コンソールで Universal Plugin Manager を試用してアドオンを無効化または削除できないときに行う手順を説明します。
ソリューション
アドオンの場所
- アドオン ファイルの場所を確認します。通常は次の場所にあります。
- データベースの
PLUGINDATA
テーブル - <Confluence ホーム>/bundled-plugins フォルダ
- <Confluence ホーム>/plugin-cache フォルダ
- <Confluence ホーム>/plugins-osgi-cache フォルダ
- <Confluence ホーム>/plugins-temp フォルダ
- <Confluence インストール ディレクトリ>/confluence/WEB-INF/lib フォルダ (廃止予定)
- データベースの
アドオンの読み込みの問題のトラブルシューティングを行うときにはこれらの場所を確認します。
アドオンの読み込みのトラブルシューティングの詳細については、「Confluence System Classpath の表示方法」FAQ と、プラグインの読み込みの問題のナレッジベース記事をご確認ください。
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
開始時にアドオンを一時的に無効化する (Confluence 6.1 以降)
これは Confluence Server の機能です。これらのパラメータは、Confluence Data Center では動作しません。
アドオンの問題のトラブルシューティングを行っている場合や、Confluence またはアドオンの更新後に Confluence が起動しない場合は、開始時にアドオンを一時的に無効化できます。これによって Confluence を開始し、場合によっては UPM を使用して問題のあるアドオンを削除できます。
すべての非システム アドオンを一時的に無効化するには、次の手順を実行します。
$ ./start-confluence.sh --disable-all-addons
> start-confluence.bat /disablealladdons
If Confluence is unable to manually start within Windows, please see if CONFSERVER-60001 - Getting issue details... STATUS applies. If so, try the prescribed workaround.
特定のアドオンを一時的に無効化するには、アドオンのキー (例: com.atlassian.test.plugin
) を指定します。コロン区切りのリストを使用して、複数のアドオンを無効化することができます。
$ ./start-confluence.sh --disable-addons=com.atlassian.test.plugin
> start-confluence.bat /disableaddon=com.atlassian.test.plugin
これらのパラメータはスタートアップ時のみ適用されます。再起動後は保持されません。アドオンを永続的に無効化または削除したい場合は引き続き UPM (UPM が利用できない場合は以降の方法のいずれか) を利用する必要があります。
アドオンをデータベースから削除
Confluence が実行されていないときに Confluence からアドオンを削除する方法
- Confluence のデータベースに接続します。
データベース内で次の SQL ステートメントを実行します。
select PLUGINDATAID, PLUGINKEY, FILENAME, LASTMODDATE from PLUGINDATA;
問題のあるアドオンの
plugindataid
値を見つけたら、次のように実行します。delete from PLUGINDATA where PLUGINDATAID= XXXXXX;
ここで、XXXXXX が
plugindataid
値です。- Confluence を再起動します。
If the add-on is subsequently re-added to Confluence, its previous configurations will still be present.
アドオンをデータベースから無効化
データベース内でアドオンを無効化する方法
Confluence のデータベースで次のクエリを実行します。
select BANDANAVALUE from BANDANA where BANDANAKEY = 'plugin.manager.state.Map';
次のような値が返されます。
<map>
<entry>
<string>com.atlassian.confluence.ext.usage</string>
<boolean>true</boolean>
</entry>
</map>
プラグインを無効化するには、ブール値を false にします。
<map>
<entry>
<string>com.atlassian.confluence.ext.usage</string>
<boolean>false</boolean>
</entry>
</map>
Confluence のキャッシュをクリアするか Confluence を再起動して、変更を適用します。
バンドルされたアドオンの削除
バンドルされたアドオンは、アドオンの管理ページ内のアプリケーションの管理コンソールで管理できます。ここで、アップロードや無効化を行えます。
バンドルされたアドオンは、ディレクトリ <confluence-install>/confluence/WEB-INF/atlassian-bundled-plugins
に存在します。Confluence の開始時に $CONFLUENCE_HOME/bundled-plugins ディレクトリにコピーされ、そこから読み取られます。バンドルされたアドオンを削除するには (これは通常は不要です)、atlassian-bundled-plugins ディレクトリと bundled-plugins ディレクトリから対象のアドオンを削除します。これを行わない場合、Confluence によって次回の開始時に元に戻されます。2.6 よりもあとのバージョンでは、.jar ファイルを再作成 (jar ファイルを lib フォルダから取得している場合) または zip フォルダを再作成 (classes フォルダにある場合) する必要があります。バンドルされたアドオンは、アップグレードまたは無効化できます。
バンドルされたアドオンを削除する必要がある場合、<confluence-home>/bundled-plugins
または <confluence-home>/plugin-cache
ディレクトリに重複があるかどうかを確認します。
多くの場合、適切にバンドルされたアドオンと古いアドオンが同時に読み込まれるのが問題になります。
参考資料
- CONFSERVER-52749 - Getting issue details... STATUS