Механизмы фильтрации поддерживают использование следующих макросов в текстовом поле:
uc
lc
join
substr
macToEUI48
random_from_range
log
replace
BuildFromMatch
В данной статье описаны макросы и приведены примеры их использования.
Данный макрос применяет верхний регистр к значению атрибута.
Пример:
AxelNAC-UserName = $ {uc ($radius_request.Calling-Station-Id)}
Результат:
Calling-Station-Id = "00:10:7f:38:89:9d" -> AxelNAC-UserName =
"00:10:7F:38:89:9D"
Данный макрос применяет нижний регистр к значению атрибута.
Пример:
AxelNAC-UserName = $ {lc ($radius_request.User-Name)}
Результат:
User-Name = "AXELPRO" -> AxelNAC-UserName = "axelpro"
Данный макрос объединяет значение атрибута и значение, указанное после разделителя.
Пример:
AxelNAC-UserName = $ {join (":",$radius_request.User-Name, "pro")}
Результат:
User-Name = "axel" -> AxelNAC-UserName = "axel:pro"
Данный макрос присваивает атрибуту определенное количество символов строки.
Пример:
AxelNAC-UserName = $ {substr ($radius_request.User-Name,0, 3)}
Результат:
User-Name = "AxelUser" -> AxelNAC-UserName = "Axel"
Данный макрос назначает указанному атрибуту значение MAC-адреса в формате EUI48.
Пример:
AxelNAC-UserName = $ {macToEUI48 ($radius_request.Calling-Station-Id)}
Результат:
Calling-Station-Id = "00:10:7f:38:89:9d" -> AxelNAC-UserName = "00—10-7F-38—89-9D"
Данный макрос присваивает указанному атрибуту случайное целое число в диапазоне, указанном после разделителя.
Пример:
Session-Timeout = $ {random_from_range ("10620..12600")}
Результат:
Session-Timeout = 11343
Данный макрос записывает значение указанного атрибута в журнал anac.log, дополненное значением, указанным после разделителя.
Пример:
AxelNAC-UserName = $ {log ($radius_request.User-Name." logged")}
Результат:
User-Name = "axeluser" -> "axeluser logged"
Данный макрос заменяет строку или символ в RADIUS-запросе.
Пример:
AxelNAC-UserName = $ {replace ($radius_request.User-Name, "default", "custom")}
Результат:
User-Name = "defaultuser" -> AxelNAC-UserName = "customuser"
Данный макрос находит значение по регулярному выражению и назначает его указанному атрибуту.
Пример:
TLS-Stripped-UserName = $ {BuildFromMatch ($radius_request.TLS-Client-Cert-Common-Name,"^ [^@]+","$0")}
Результат:
TLS-Client-Cert-Common-Name = "user@axel.pro" -> TLS-Stripped-UserName = "user"