問題
- FreeMarkerとVelocityのカスタムテンプレートで、Fix Packをインストールすると次のエラーが発生する。
org.apache
のクラス [...] の解決を拒否されました。
Environment
- Liferay DXP 7.0 FP92以上
- Liferay DXP 7.1 FP18+/SP5+
- Liferay DXP 7.2 FP6+/SP2+
解決策
- この挙動は、 LSV-658に記載されているセキュリティ上の脆弱性による意図的な変更に起因するものです。
- Liferay DXP 7.0, 7.1, 7.2 において、テンプレート API はユーザーに機密オブジェクトへのアクセスを提供し、リモートで認証されたユーザーが FreeMarker および Velocity テンプレートを介して任意のコードを実行できるようにします。 そのため、サンドボックスを回避してリモートでコードを実行される危険性がある一部のパッケージは、より新しいFix Packで無効化されています。
- 上記のFix Packを必要とするHotfixを使用している場合、インストールに影響が出る可能性があります。
-
解決策と緩和策情報 の項で述べたとおりです。
- FreeMarker Engine および Velocity Engine System Settings のデフォルトのリスト Restricted Packages に以下のパッケージが追加されました。したがって、 システムがこれらの設定のカスタマイズバージョンを使用している場合、それに応じて設定を見直し、 更新する必要があります。 これらの制限されたパッケージに依存するカスタムテンプレートがある場合、それらを再度有効にする前に、その使用を再考してください。
-
com.liferay.portal.spring.context
-
com.ibm
-
io.undertow
-
org.apache
-
org.glassfish
-
org.jboss
-
org.springframework
-
org.wildfly
-
weblogic
-
- FreeMarker Engine および Velocity Engine System Settings のデフォルトのリスト Restricted Packages に以下のパッケージが追加されました。したがって、 システムがこれらの設定のカスタマイズバージョンを使用している場合、それに応じて設定を見直し、 更新する必要があります。 これらの制限されたパッケージに依存するカスタムテンプレートがある場合、それらを再度有効にする前に、その使用を再考してください。
-
によって、テンプレートを再有効化することができます。
org.apache
パッケージを制限パッケージから削除する コントロールパネル -> 設定 -> システム設定 -> Foundation -> Velocity Engine/FreeMarker Engine-
その後、サーバーを再起動します(または、App Manager から Liferay Portal Template FreeMarker/Liferay Portal Template Velocity バンドル を再起動することも可能です)。
- ただし、これらのパッケージはセキュリティ上の理由から無効化されていますので、代替のパッケージを使用することを検討することをお勧めします。
追加情報
- 詳しくは、 LSV-658をご覧ください。
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン