All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Variables
rlm_rest.c File Reference

Integrate FreeRADIUS with RESTfull APIs. More...

#include <freeradius-devel/radiusd.h>
#include <freeradius-devel/modules.h>
#include <freeradius-devel/token.h>
#include <freeradius-devel/rad_assert.h>
#include <ctype.h>
#include "rest.h"
+ Include dependency graph for rlm_rest.c:

Go to the source code of this file.

Functions

static rlm_rcode_t CC_HINT (nonnull)
 
static ssize_t jsonquote_xlat (char **out, size_t outlen, UNUSED void const *mod_inst, UNUSED void const *xlat_inst, UNUSED REQUEST *request, char const *fmt)
 
static int mod_bootstrap (CONF_SECTION *conf, void *instance)
 
static int mod_detach (void *instance)
 
static int mod_instantiate (CONF_SECTION *conf, void *instance)
 
static int parse_sub_section (CONF_SECTION *parent, rlm_rest_section_t *config, rlm_components_t comp)
 
static ssize_t rest_xlat (char **out, UNUSED size_t outlen, void const *mod_inst, UNUSED void const *xlat_inst, REQUEST *request, char const *fmt)
 
static void rlm_rest_cleanup (rlm_rest_t const *instance, rlm_rest_section_t *section, void *handle)
 
static int rlm_rest_perform (rlm_rest_t *instance, rlm_rest_section_t *section, void *handle, REQUEST *request, char const *username, char const *password)
 

Variables

static const CONF_PARSER module_config []
 
module_t rlm_rest
 
static const CONF_PARSER section_config []
 
static CONF_PARSER tls_config []
 

Detailed Description

Integrate FreeRADIUS with RESTfull APIs.

Id:
4ef697e1a0dd9c762cd91474e35ec8cf07888f09

Definition in file rlm_rest.c.

Function Documentation

static rlm_rcode_t CC_HINT ( nonnull  )
static

Definition at line 374 of file rlm_rest.c.

+ Here is the call graph for this function:

static ssize_t jsonquote_xlat ( char **  out,
size_t  outlen,
UNUSED void const *  mod_inst,
UNUSED void const *  xlat_inst,
UNUSED REQUEST request,
char const *  fmt 
)
static

Definition at line 158 of file rlm_rest.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int mod_bootstrap ( CONF_SECTION conf,
void *  instance 
)
static

Definition at line 809 of file rlm_rest.c.

+ Here is the call graph for this function:

static int mod_detach ( void *  instance)
static

Definition at line 870 of file rlm_rest.c.

+ Here is the call graph for this function:

static int mod_instantiate ( CONF_SECTION conf,
void *  instance 
)
static

Definition at line 836 of file rlm_rest.c.

+ Here is the call graph for this function:

static int parse_sub_section ( CONF_SECTION parent,
rlm_rest_section_t config,
rlm_components_t  comp 
)
static

Definition at line 676 of file rlm_rest.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static ssize_t rest_xlat ( char **  out,
UNUSED size_t  outlen,
void const *  mod_inst,
UNUSED void const *  xlat_inst,
REQUEST request,
char const *  fmt 
)
static

Definition at line 238 of file rlm_rest.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void rlm_rest_cleanup ( rlm_rest_t const *  instance,
rlm_rest_section_t section,
void *  handle 
)
static

Definition at line 153 of file rlm_rest.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int rlm_rest_perform ( rlm_rest_t instance,
rlm_rest_section_t section,
void *  handle,
REQUEST request,
char const *  username,
char const *  password 
)
static

Definition at line 88 of file rlm_rest.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

const CONF_PARSER module_config[]
static
Initial value:
= {
{ FR_CONF_OFFSET("connect_uri", PW_TYPE_STRING, rlm_rest_t, connect_uri) },
{ FR_CONF_DEPRECATED("connect_timeout", PW_TYPE_TIMEVAL, rlm_rest_t, connect_timeout) },
{ FR_CONF_OFFSET("connect_proxy", PW_TYPE_STRING, rlm_rest_t, connect_proxy) },
}
Time value (struct timeval), only for config items.
Definition: radius.h:55
#define CONF_PARSER_TERMINATOR
Definition: conffile.h:289
#define FR_CONF_DEPRECATED(_n, _t, _p, _f)
Definition: conffile.h:179
#define FR_CONF_OFFSET(_n, _t, _s, _f)
Definition: conffile.h:168
String of printable characters.
Definition: radius.h:33

Definition at line 81 of file rlm_rest.c.

module_t rlm_rest
Initial value:
= {
.magic = RLM_MODULE_INIT,
.name = "rest",
.inst_size = sizeof(rlm_rest_t),
.config = module_config,
.bootstrap = mod_bootstrap,
.instantiate = mod_instantiate,
.detach = mod_detach,
.methods = {
},
}
static rlm_rcode_t mod_accounting(void *instance, REQUEST *request)
Write accounting data to Couchbase documents.
static rlm_rcode_t mod_post_auth(void *instance, REQUEST *request) CC_HINT(nonnull)
7 methods index for postauth section.
Definition: modules.h:48
static rlm_rcode_t mod_authorize(void *instance, REQUEST *request)
Handle authorization requests using Couchbase document data.
#define RLM_TYPE_THREAD_SAFE
Module is threadsafe.
Definition: modules.h:75
#define RLM_MODULE_INIT
Definition: modules.h:86
static rlm_rcode_t mod_authenticate(void *instance, REQUEST *request) CC_HINT(nonnull)
struct rlm_rest_t rlm_rest_t
static int mod_bootstrap(CONF_SECTION *conf, void *instance)
Definition: rlm_rest.c:809
3 methods index for accounting section.
Definition: modules.h:44
static int mod_instantiate(CONF_SECTION *conf, void *instance)
Definition: rlm_rest.c:836
0 methods index for authenticate section.
Definition: modules.h:41
static const CONF_PARSER module_config[]
Definition: rlm_rest.c:81
static int mod_detach(void *instance)
Definition: rlm_rest.c:870
1 methods index for authorize section.
Definition: modules.h:42

Definition at line 892 of file rlm_rest.c.

const CONF_PARSER section_config[]
static
Initial value:
= {
{ FR_CONF_OFFSET("method", PW_TYPE_STRING, rlm_rest_section_t, method_str), .dflt = "GET" },
{ FR_CONF_OFFSET("body", PW_TYPE_STRING, rlm_rest_section_t, body_str), .dflt = "none" },
{ FR_CONF_OFFSET("force_to", PW_TYPE_STRING, rlm_rest_section_t, force_to_str) },
{ FR_CONF_OFFSET("auth", PW_TYPE_STRING, rlm_rest_section_t, auth_str), .dflt = "none" },
{ FR_CONF_OFFSET("require_auth", PW_TYPE_BOOLEAN, rlm_rest_section_t, require_auth), .dflt = "no" },
{ FR_CONF_OFFSET("timeout", PW_TYPE_TIMEVAL, rlm_rest_section_t, timeout_tv), .dflt = "4.0" },
{ FR_CONF_OFFSET("chunk", PW_TYPE_INTEGER, rlm_rest_section_t, chunk), .dflt = "0" },
{ FR_CONF_POINTER("tls", PW_TYPE_SUBSECTION, NULL), .dflt = (void const *) tls_config },
}
Time value (struct timeval), only for config items.
Definition: radius.h:55
#define CONF_PARSER_TERMINATOR
Definition: conffile.h:289
#define PW_TYPE_SUBSECTION
Definition: conffile.h:188
#define PW_TYPE_XLAT
string will be dynamically expanded.
Definition: conffile.h:207
A truth value.
Definition: radius.h:56
32 Bit unsigned integer.
Definition: radius.h:34
uint8_t data[]
Definition: eap_pwd.h:625
#define FR_CONF_OFFSET(_n, _t, _s, _f)
Definition: conffile.h:168
String of printable characters.
Definition: radius.h:33
#define FR_CONF_POINTER(_n, _t, _p)
Definition: conffile.h:172
static CONF_PARSER tls_config[]
Definition: rlm_rest.c:37

Definition at line 58 of file rlm_rest.c.

CONF_PARSER tls_config[]
static
Initial value:
= {
{ FR_CONF_OFFSET("ca_file", PW_TYPE_FILE_INPUT, rlm_rest_section_t, tls_ca_file) },
{ FR_CONF_OFFSET("ca_path", PW_TYPE_FILE_INPUT, rlm_rest_section_t, tls_ca_path) },
{ FR_CONF_OFFSET("certificate_file", PW_TYPE_FILE_INPUT, rlm_rest_section_t, tls_certificate_file) },
{ FR_CONF_OFFSET("private_key_file", PW_TYPE_FILE_INPUT, rlm_rest_section_t, tls_private_key_file) },
{ FR_CONF_OFFSET("private_key_password", PW_TYPE_STRING | PW_TYPE_SECRET, rlm_rest_section_t, tls_private_key_password) },
{ FR_CONF_OFFSET("random_file", PW_TYPE_STRING, rlm_rest_section_t, tls_random_file) },
{ FR_CONF_OFFSET("check_cert", PW_TYPE_BOOLEAN, rlm_rest_section_t, tls_check_cert), .dflt = "yes" },
{ FR_CONF_OFFSET("check_cert_cn", PW_TYPE_BOOLEAN, rlm_rest_section_t, tls_check_cert_cn), .dflt = "yes" },
}
#define PW_TYPE_FILE_INPUT
File matching value must exist, and must be readable.
Definition: conffile.h:204
#define CONF_PARSER_TERMINATOR
Definition: conffile.h:289
#define PW_TYPE_SECRET
Only print value if debug level >= 3.
Definition: conffile.h:202
A truth value.
Definition: radius.h:56
#define FR_CONF_OFFSET(_n, _t, _s, _f)
Definition: conffile.h:168
String of printable characters.
Definition: radius.h:33

Definition at line 37 of file rlm_rest.c.