public class ExpressionLanguageJEXLImpl extends Object implements ExpressionLanguage
利用する際には、JEXL v3.3以上のライブラリが必要です。
JEXL v3.3から、ELインジェクション対策として、JexlPermissionsによるEL式中で参照/実行可能なクラスを制限されます。
独自のCellProcessorなどを実装しているが場合は、システムプロパティ supercsv.annotation.jexlPermissions で指定することができます。 複数指定する場合はカンマ区切りで指定します。
修飾子とタイプ | フィールドと説明 |
---|---|
protected static String[] |
LIB_PERMISSIONS
システムプロパティ - JEXLをRESTRICTモードで使用する場合のパーミッションを指定する
|
static String |
PROPERTY_JEXL_RESTRICTED
システムプロパティ - JEXLをRESTRICTモードで使用するかどうかフラグ。
|
protected static String[] |
USER_PERMISSIONS
独自のJEXLのパーミッション。
|
コンストラクタと説明 |
---|
ExpressionLanguageJEXLImpl(org.apache.commons.jexl3.JexlEngine jexlEngine)
JexlEngine を指定するコンストラクタ。 |
ExpressionLanguageJEXLImpl(Map<String,Object> userFunctions,
boolean restricted,
String... userPermissions)
JEXLの独自のEL関数とパーミッションを指定するコンストラクタ。
|
ExpressionLanguageJEXLImpl(String... userPermissions)
JEXLのパーミッションを指定するコンストラクタ。
|
修飾子とタイプ | メソッドと説明 |
---|---|
protected Map<String,Object> |
buildNamespace(Map<String,Object> userFunctions)
EL関数の名前空間を組み立て、独自のEL関数を登録します。
|
protected org.apache.commons.jexl3.introspection.JexlPermissions |
buildPermissions(boolean restricted,
String... userPermissions)
JEXLのパーミッションを組み立てる。
|
Object |
evaluate(String expression,
Map<String,Object> values)
引数で与えた式を評価する。
|
org.apache.commons.jexl3.JexlEngine |
getJexlEngine()
JexlEngine を取得する。 |
public static final String PROPERTY_JEXL_RESTRICTED
protected static final String[] LIB_PERMISSIONS
protected static final String[] USER_PERMISSIONS
public ExpressionLanguageJEXLImpl(String... userPermissions)
関数としてCustomFunctions
が登録されており、接頭語 f:で呼び出し可能です。
userPermissions
- JEXLのパーミッション。
詳細は、JexlPermissions を参照。public ExpressionLanguageJEXLImpl(Map<String,Object> userFunctions, boolean restricted, String... userPermissions)
関数としてCustomFunctions
が登録されており、接頭語 f:で呼び出し可能です。
userFunctions
- 独自のEL関数を指定します。keyは接頭語、valueはメソッドが定義されたクラス。userPermissions
- JEXLのパーミッション。
詳細は、JexlPermissions を参照。public ExpressionLanguageJEXLImpl(org.apache.commons.jexl3.JexlEngine jexlEngine)
JexlEngine
を指定するコンストラクタ。jexlEngine
- JEXLの処理エンジン。protected Map<String,Object> buildNamespace(Map<String,Object> userFunctions)
userFunctions
- 独自のEL関数を指定します。keyは接頭語、valueはメソッドが定義されたクラス。protected org.apache.commons.jexl3.introspection.JexlPermissions buildPermissions(boolean restricted, String... userPermissions)
userPermissions
- ユーザー指定のJEXLのパーミッション。
詳細は、JexlPermissions を参照。public Object evaluate(String expression, Map<String,Object> values)
ExpressionLanguage
evaluate
インタフェース内 ExpressionLanguage
expression
- 評価対象の式。values
- 式中で利用可な変数。public org.apache.commons.jexl3.JexlEngine getJexlEngine()
JexlEngine
を取得する。Copyright © 2025 mygreen. All rights reserved.