ユーザーがJEXL式を入力できるアプリケーションがあります。これらは検索フィルターとして使用されます。ユーザーが行うよくある間違いは、"A=5" のように記述して、変数 A に値 5 が含まれる場合にのみフィルターが true であると期待することです。
はい、その通りです。= 演算子は割り当てであり、ユーザーは比較のために == を使用する必要がありました。正規表現 [^=]=[^=] に一致する表現を拒否するなどの回避策も、 A=="foo=bar" のような文字列を比較できないため、解決策ではありません。
ランタイム構成を介して JexlEngine から代入演算子を削除して、解析中に例外をスローする可能性はありますか? または、代わりに JexlExpression に代入が含まれていることがわかりますか?