Execution context in Radiator Server defines the set of variables and their
structure that are available during the processing of a request. It provides
access to various attributes related to the request, user, session, and
environment, allowing for dynamic handling and customisation of request
processing. Execution context is created at the beginning of request processing
and is passed through the execution
pipelines.
Below, '*' denotes any namespace, attribute name, or data type.
| Variable | Type | Access | Description |
|---|
| id | number | read | Request identifier |
| env.* | string | read | Process enviroment variables |
| vars.* | * | read/write | Custom variables |
| util.rand.X | bytes | read | Reads X bytes of random |
| datetime.timestamp | timestamp | read | Current time |
| Variable | Type | Access | Description |
|---|
| aaa.identity | string | read/write | Protocol-agnostic username/identity of the request |
| aaa.identity.name | string | read | Name part of current username/identity |
| aaa.identity.realm | string | read/write | Realm part of current username/identity |
| aaa.identity.realm.tld | string | read | TLD part of the realm |
| aaa.protocol | enum | read | Protocol of the request |
| aaa.trace | boolean | read | Is tracing enabled for the request? |
| aaa.accounting | boolean | read | Is the request an accounting request? |
| aaa.policy | string | read | Name of AAA policy handling the request |
| aaa.handler | string | read | Name of AAA policy handler handling the request |
| aaa.method | enum | read | Authentication protocol/method |
| aaa.message | string | read/write | Reply message |
| aaa.result | enum | read | AAA result |
| aaa.reason | string | read | Error or reason |
| aaa.errors | string array | read | All errors that occurred during request processing |
| Variable | Type | Access | Description |
|---|
| user.username | string | read/write | User entry's name |
| user.password | string | read/write | User's password |
| user.group | string array | read/write | User's groups |
| user.role | string array | read/write | User's roles |
| user.backend | string | read | Backend's name from which user was fetched |
| Variable | Type | Access | Description |
|---|
| acct.status | enum | read | Accounting request status |
| acct.timestamp | timestamp | read | Accounting request timestamp |
| acct.duration | number | read | Accounting session duration in seconds |
| acct.input.packets | number | read | Accounting session packets in |
| acct.input.bytes | number | read | Accounting session bytes in |
| acct.output.packets | number | read | Accounting session packets out |
| acct.output.bytes | number | read | Accounting session bytes out |
| Variable | Type | Access | Description |
|---|
| auth.protocol | enum | read/write | Authentication protocol |
| auth.challenge | string | read/write | Authentication challenge |
| auth.response | bytes | read/write | Authentication response |
| auth.result | string | read/write | Authentication result |
| Variable | Type | Access | Description |
|---|
| tls.version | enum | read | Negotiated TLS protocol version |
| tls.cipher | enum | read | Negotiated TLS cipher |
| Variable | Type | Access | Description |
|---|
| cert.valid | boolean | read | Did basic certificate validation succeed? |
| cert.error | string | read | Verification error |
| cert.server | string | read | In TLS client context, server's name or IP address |
| cert.issuer | string | read | Certificate's issuer's name |
| cert.subject | string | read | Certificate's subject's name |
| cert.serial | number | read | Certificate's serial number |
| cert.issued | timestamp | read | Certificate's issue timestamp |
| cert.expires | timestamp | read | Certificate's expiry timestamp |
| cert.policy | string array | read | Certificate's Policy OIDs |
| cert.sha256 | bytes | read | SHA256 hash of the certificate |
| cert.issuer.* | string array | read | Issuer name's individual components (dc, c, st, l, o, ou, cn, emailaddress) |
| cert.subject.* | string array | read | Subject name's individual components (dc, c, st, l, o, ou, cn, emailaddress) |
| cert.subject_alt.* | string array | read | Subject's alternative names (email, dns, dn, uri, ip, oid, upn, other) |
| cert.ca.* | * | read | Certificate's first CA certificate |
| cert.ca[N].* | * | read | Certificate's Nth CA certificate |
CA certificate has the same attributes as the cert.
| Variable | Type | Access | Description |
|---|
| radius.client | string | read | Client's name from which the request was received |
| radius.client.ip | ip | read | IP address from which the request was received |
| radius.server | string | read | Server's name which received the request |
| radius.server.tls | boolean | read | Was request received over TLS? |
| radius.attr.* | * | read/write | Radius request/reply attributes |
Attribute's data type is defined by the RADIUS dictionary used.
Examples:
| Example | Description |
|---|
| radius.attr.user-name | User-Name attribute |
| radius.attr.tunnel-type:1 | Tunnel-Type attribute with a tag value 1 |
| radius.attr.framed-route[0] | First Framed-Route attribute |
| radius.attr.framed-route[n] | Last Framed-Route attribute |
| radius.attr.framed-route[*] | All Framed-Route attributes |
| radius.attr.cisco.avpair | Cisco AV-pair attribute |
| Variable | Type | Access | Description |
|---|
| radiusproxy.server | string | read | Radius proxy server's name to which send the request |
| radiusproxy.server.tls | boolean | read | Is Radius proxy server using TLS connection? |
| radiusproxy.attr.* | * | read/write | Radius proxy reply/request attributes |
Attribute's data type is defined by the RADIUS dictionary used.
Examples:
| Example | Description |
|---|
| radiusproxy.attr.user-name | User-Name attribute |
| radiusproxy.attr.operator-name | Operator-Name attribute |
| radiusproxy.attr.tunnel-type:1 | Tunnel-Type attribute with a tag value 1 |
| radiusproxy.attr.cisco.avpair[0] | First Cisco AV-pair attribute |
| radiusproxy.attr.cisco.avpair[n] | Last Cisco AV-pair attribute |
| radiusproxy.attr.cisco.avpair[*] | All Cisco AV-pair attributes |
| Variable | Type | Access | Description |
|---|
| eap.identity | string | read | EAP identity |
| eap.method | enum | read | EAP method |
| Variable | Type | Access | Description |
|---|
| eap-ttls.attr.* | * | read/write | EAP-TTLS request/response attributes |
Attribute's data type is defined by the RADIUS dictionary used.
Examples:
| Example | Description |
|---|
| eap-ttls.attr.user-name | User-Name attribute |
| eap-ttls.attr.user-password | User-Password attribute |
| eap-ttls.attr.chap-password | CHAP-Password attribute |
| eap-ttls.attr.eap-message | EAP-Message attribute |
| Variable | Type | Access | Description |
|---|
| eap-teap.username | string | read | EAP-TEAP basic password authentication response username |
| eap-teap.identity-type | enum | read | EAP-TEAP Identity-Type TLV (user/machine) |
| Variable | Type | Access | Description |
|---|
| parent.* | * | read/write | Parent context namespace |
Examples:
| Example | Description |
|---|
| parent.aaa.identity | AAA identity from parent context |
| parent.radius.client | RADIUS client from parent context |
| Variable | Type | Access | Description |
|---|
| tacacsplus.type | number | read | TACACS+ packet type |
| tacacsplus.authentication | boolean | read | Is the request an authentication request? |
| tacacsplus.authorization | boolean | read | Is the request an authorization request? |
| tacacsplus.accounting | boolean | read | Is the request an accounting request? |
| tacacsplus.unencrypted | boolean | read | Is the packet unencrypted? |
| tacacsplus.session | number | read | TACACS+ session ID |
| tacacsplus.request.action | number | read | Request action |
| tacacsplus.request.privilege | number | read | Request privilege level |
| tacacsplus.request.authentication.method | number | read | Authentication method |
| tacacsplus.request.authentication.type | number | read | Authentication type |
| tacacsplus.request.authentication.service | number | read | Authentication service |
| tacacsplus.request.user | string | read | Request username |
| tacacsplus.request.port | string | read | Request port |
| tacacsplus.request.address | string | read | Request remote address |
| tacacsplus.request.data | bytes | read | Request data |
| tacacsplus.request.message | string | read | Request message |
| tacacsplus.request.arg[N] | string | read | Nth request argument |
| tacacsplus.request.args | string array | read | All request arguments |
| tacacsplus.reply.status | string | read/write | Reply status |
| tacacsplus.reply.noecho | boolean | read/write | Reply no-echo flag |
| tacacsplus.reply.message | string | read/write | Reply message |
| tacacsplus.reply.data | bytes | read/write | Reply data |
| tacacsplus.reply.arg[N] | string | write | Nth reply argument |
| tacacsplus.reply.args | string array | read/write | All reply arguments |
| tacacsplus.client | string | read/write | TACACS+ client name |
| tacacsplus.client.ip | ip | read | TACACS+ client IP address |
| tacacsplus.client.secret | bytes | write | TACACS+ client secret |
| tacacsplus.client.timeout | number | read/write | TACACS+ client timeout in milliseconds |
| tacacsplus.server | string | read | TACACS+ server name |
| Variable | Type | Access | Description |
|---|
| http.management | boolean | read | Is the request a management API request? |
| http.method | string | read | HTTP request method (GET, POST, etc.) |
| http.path | string | read | HTTP request path |
| http.path.N | string | read | Nth part of the HTTP path (0-based) |
| http.query | map | read | All HTTP query parameters |
| http.query.KEY | string | read | Specific HTTP query parameter value |
| http.body | bytes | read | HTTP request body |
| http.body.PATH | * | read | JSON path access to request body |
| http.header.NAME | string | read | HTTP request header value |
| http.headers.NAME | string | read | HTTP request header value (alias) |
| http.response | bytes | read/write | HTTP response body |
| http.response_header.NAME | string | read/write | HTTP response header value |
| http.status | string | read/write | HTTP response status code |
| http.json | boolean | read/write | Should response be JSON formatted? |
| http.authorization.username | string | read | Username from Authorization header |
| http.authorization.password | string | read | Password from Authorization header |
| http.authorization.bearer | string | read | Bearer token from Authorization header |
| http.client | string | read | HTTP client name |
| http.client.ip | ip | read | HTTP client IP address |
| http.server | string | read | HTTP server name |
| http.server.ip | ip | read | HTTP server IP address |
| http.server.tls | boolean | read | Is the HTTP connection using TLS? |
| Variable | Type | Access | Description |
|---|
| root.* | * | read/write | Root context namespace |
Examples:
| Example | Description |
|---|
| root.aaa.identity | AAA identity from root context |
| root.radius.client | RADIUS client from root context |
| Variable | Type | Access | Description |
|---|
| server.instance_id | string | read | Server instance's ID |
| server.cluster_id | string | read | Server's cluster ID |
| server.hostname | string | read | Hostname of server |
| server.version | string | read | Software version information |