[EXT] Re: XLAT Question

Brian Julin BJulin at clarku.edu
Tue Apr 14 14:12:50 UTC 2026




Alan DeKok via Freeradius-Users <freeradius-users at lists.freeradius.org> wrote:
>On Apr 13, 2026, at 4:59 PM, g4-lisz at tonarchiv.ch wrote:
>> I read about the default / alternation syntax for string expansion, like %{%{Foo}:-bar}.
>>
>> But what I needed is this:
>>   if (foo != '' ) ? '[ %{foo} ]' : 'null'.
>>
>> This is for a JSON request string in a REST module configuration. The request property in question must be a JSON array (  [ .. ] ) or 'null'.
>>
>> I could use Unlang IF and declare the complete JSON request in different versions depending on foo. But I would prefer to do this with expansion inside the JSON string definition, if possible.
>
>  You'll have to use 'if'.  There is a mods-available/json, and you can do:
>
>        %{json_encode:&foo}
>
>  Except that if "foo" doesn't exist, it returns an empty json object: "{}"

You could use another attribute and assign the json text to that attribute using if/else, then base the REST stuff off that attribute.  That at least keeps your REST query DRY.  There are some temporary internal-use-only attributes in the dictionary for stuff like this.

If you are running a version that has mod_json you should use it.  Performing data sanitation by hand is cringy.



More information about the Freeradius-Users mailing list