Служебные функции
ESB поддерживает разные типы служебных функций, описанные ниже.
| Функция | Тип ответа | Описание |
|---|---|---|
env.key | String | Ссылается на переменную окружения ОС с заданным ключом ${env.key}.Например, ${env.PATH}, ${env.HOME} или ${env.JAVA_HOME}. Обратите внимание, что ключ должен быть в верхнем регистре, как того требуют переменные среды ОС. |
hash(exp,algorithm) | String | Возвращает хэшированное значение (строка в шестнадцатеричном формате) данного выражения. Алгоритм может быть SHA-256 (по умолчанию) или SHA3-256. |
hostname | String | Возвращает локальное имя хоста (может быть null, если не удается разрешить).Функция не требует использования круглых скобок, так что просто используйте ${hostname}. |
load(file) | String | Загружает содержимое ресурса из classpath.Чтобы загрузить данные из classpath, вы можете использовать функцию load, например ${load(myrules.json)}. Если файл отсутствует в classpath, выбрасывается исключение. Однако вы можете пометить файл как необязательный: ${load(myrules.json?optional=true)}, который вернет null, если файл не существует.Функция load может загружать только из classpath, а не из файловой системы в целом. Это сделано намеренно, чтобы избежать потенциальных рисков безопасности при создании динамических простых выражений с использованием функции load для попытки загрузки серверных файлов. |
null | null | Возвращает значение null, например ${null}. |
sysenv.key | String | Предназначена для поиска системного свойства JVM с заданным ключом. Чтобы получить системные свойства JVM, используйте функцию ${sysenv.key}, например ${sysenv.java.version} или ${sysenv.java.io.tmpdir}. |
threadId | String | Возвращает идентификатор текущего потока. Его можно получить с помощью ${threadId}. |
threadName | String | Возвращает имя текущего потока. Его можно получить с помощью ${threadName}. |
uuid(kind) | String | Возвращает UUID, используя UuidGenerator. Вы можете выбрать тип из: default, classic, short, simple и random. Если тип не указан, используется default. Также можно использовать пользовательский UuidGenerator и привязать bean к реестру с идентификатором. Например, ${uuid(myGenerator)}, где идентификатор — myGenerator. |
base64Encode() | String | Кодирует тело сообщения в Base64. Например, если вы хотите закодировать тело сообщения, используйте \${base64Encode()}. |
base64Encode(exp) | String | Кодирует выражение в Base64. Вы можете предоставить вложенную функцию, например ${base64Encode(${header.myKey})}, для кодирования заголовка. |
base64Decode() | byte[] | Декодирует тело сообщения Base64. |
base64Decode(exp) | byte[] | Декодирует выражение Base64. |