The FreeRADIUS server
$Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
Go to the source code of this file.
Data Structures | |
struct | ldap_user_find_ctx_t |
Holds state of user searches in progress. More... | |
Macros | |
#define | LOG_PREFIX mctx->mi->name |
Functions | |
static void | ldap_find_user_async_cancel (UNUSED request_t *request, UNUSED fr_signal_t action, void *uctx) |
Cancel a user search. More... | |
static unlang_action_t | ldap_find_user_async_result (rlm_rcode_t *p_result, UNUSED int *priority, request_t *request, void *uctx) |
Process the results of an async user lookup. More... | |
ldap_access_state_t | rlm_ldap_check_access (rlm_ldap_t const *inst, request_t *request, LDAPMessage *entry) |
Check for presence of access attribute in result. More... | |
void | rlm_ldap_check_reply (request_t *request, rlm_ldap_t const *inst, char const *inst_name, bool expect_password, fr_ldap_thread_trunk_t const *ttrunk) |
Verify we got a password from the search. More... | |
unlang_action_t | rlm_ldap_find_user_async (TALLOC_CTX *ctx, rlm_ldap_t const *inst, request_t *request, fr_value_box_t *base, fr_value_box_t *filter, fr_ldap_thread_trunk_t *ttrunk, char const *attrs[], fr_ldap_query_t **query_out) |
Initiate asynchronous retrieval of the DN of a user object. More... | |
struct ldap_user_find_ctx_t |
Data Fields | ||
---|---|---|
char const *const * | attrs | |
char const * | base_dn | |
char const * | filter | |
rlm_ldap_t const * | inst | |
fr_ldap_query_t ** | out | |
fr_ldap_query_t * | query | |
fr_ldap_thread_trunk_t * | ttrunk |
|
static |
|
static |
ldap_access_state_t rlm_ldap_check_access | ( | rlm_ldap_t const * | inst, |
request_t * | request, | ||
LDAPMessage * | entry | ||
) |
Check for presence of access attribute in result.
[in] | inst | rlm_ldap configuration. |
[in] | request | Current request. |
[in] | entry | retrieved by rlm_ldap_find_user or fr_ldap_search. |
Definition at line 199 of file user.c.
void rlm_ldap_check_reply | ( | request_t * | request, |
rlm_ldap_t const * | inst, | ||
char const * | inst_name, | ||
bool | expect_password, | ||
fr_ldap_thread_trunk_t const * | ttrunk | ||
) |
Verify we got a password from the search.
Checks to see if after the LDAP to RADIUS mapping has been completed that a reference password.
[in] | request | Current request. |
[in] | inst | Current LDAP instance. |
[in] | inst_name | Name of LDAP module instance for debug messages. |
[in] | expect_password | Whether we should be expecting a password. |
[in] | ttrunk | the connection thread trunk. |
Definition at line 251 of file user.c.
unlang_action_t rlm_ldap_find_user_async | ( | TALLOC_CTX * | ctx, |
rlm_ldap_t const * | inst, | ||
request_t * | request, | ||
fr_value_box_t * | base, | ||
fr_value_box_t * | filter, | ||
fr_ldap_thread_trunk_t * | ttrunk, | ||
char const * | attrs[], | ||
fr_ldap_query_t ** | query_out | ||
) |
Initiate asynchronous retrieval of the DN of a user object.
Retrieves the DN of a user and adds it to the control list as LDAP-UserDN. Will also retrieve any attributes passed.
This potentially allows for all authorization and authentication checks to be performed in one ldap search operation, which is a big bonus given the number of crappy, slow cough*AD*cough LDAP directory servers out there.
[in] | ctx | in which to allocate the query. |
[in] | inst | rlm_ldap configuration. |
[in] | request | Current request. |
[in] | base | DN to search in. |
[in] | filter | to use in LDAP search. |
[in] | ttrunk | LDAP thread trunk to use. |
[in] | attrs | Additional attributes to retrieve, may be NULL. |
[in] | query_out | Where to put a pointer to the LDAP query structure - for extracting extra returned attributes, may be NULL. |
Definition at line 159 of file user.c.