問題
-
-
次のような関連するテンプレートで構造例を作成する:
<#ftl output_format="HTML"オートエスケープ=false>
<p>-----------------</p>
これはははエスケープされるべきではありません: ${'&'}
<p>-----------------</p>
This should be escaped as: ${'&'?esc}
-
作成した構成とテンプレートで記事を作成する。
-
Webコンテンツ表示ポートレットでコンテンツページを作成し、作成した記事を選択します。
-
ウィジェット・ページでも同じことをする。
-
各ページのソースコードを見る
-
結果コンテンツページのHTMLでは、文字は常にエスケープされます:
<p>-----------------</p>
これははエスケープすべきではない: &アンプ;
<p>-----------------</p>
これはとしてエスケープする必要があります。: &アンプ;
環境
- Liferay 7.4 U44+
- 四半期リリース
解像度
- この動作は、現在のコンテンツページの制限です。
- コンテンツページは、フラグメントのレンダリング時にJSoupライブラリを使用します。 JSoupのデモページで、解析された"&"文字を見ることができます。
- 残念ながら、JSoupはアンパサンド文字を解析しないように設定することはできません。
- 私たちはこの機能リクエストの下で可能な解決策を分析しています::LPD-252.
- とりあえず、この問題を回避するために、アンパサンドを含まないフレンドリーなURLを生成することをお勧めします。
追加情報
- 既知のセキュリティ脆弱性のため、JSoup ライブラリをアップグレードする必要がありました:LPE-17625
- 新しいライブラリはUpdate 44で導入されたため、このUpdateの前後で動作が異なる可能性があります。