Client Library Functions


typedef int(* xacml_obligation_handler_t )(void *handler_arg, const xacml_response_t response, const char *obligation_id, xacml_effect_t fulfill_on, const char *attribute_ids[], const char *datatypes[], const char *values[])


xacml_result_t xacml_request_add_obligation_handler (xacml_request_t request, xacml_obligation_handler_t handler, void *handler_arg, const char *obligation_id)
xacml_result_t xacml_query (const char *endpoint, xacml_request_t request, xacml_response_t response)

Typedef Documentation

typedef int(* xacml_obligation_handler_t)(void *handler_arg, const xacml_response_t response, const char *obligation_id, xacml_effect_t fulfill_on, const char *attribute_ids[], const char *datatypes[], const char *values[])

Obligation Handler Callback

handler_arg Application-specification handler argument.
response Server response value.
obligation_id Name of the obligation contained in the response
fulfill_on Effect indicating when the obligation applies.
attribute_ids XACML attribute names associated with the obligation values
datatypes XACML attribute datatypes associated with the obligation values
values String representation of the obligation values

Function Documentation

xacml_result_t xacml_query ( const char *  endpoint,
xacml_request_t  request,
xacml_response_t  response 

Perform an XACML authorization query

Contact an XACML server processing requests at the named endpoint and present an authorization query. After the server responds, obligation handlers registered with xacml_request_add_obligation_handler() will be invoked. Any failure returned from the obligation handlers will cause this function to return an error value.

endpoint Endpoint of the authorization service to contact.
request Request handle containing the authorization request information.
response Initialized response handle which will be populated with the status values from the authorization service.
Return values:
XACML_RESULT_OBLIGATION_FAILED Failed obligation processing.

xacml_result_t xacml_request_add_obligation_handler ( xacml_request_t  request,
xacml_obligation_handler_t  handler,
void *  handler_arg,
const char *  obligation_id 

Add an obligation handler to an XACML request handle

Creates a new obligation handler for the Obligation named obligation_id. When an XACML response is sent that includes such an obligation, this function will be invoked. See xacml_obligation_handler_t for a description of the parameters to the handler.

request Client request to add the obligation handler to.
handler Callback function to invoke when an obligation matching obligation_id is encountered while processing an XACML response.
handler_arg Application-specific parameter to handler.
obligation_id If this is NULL, then this handler will be invoked as a default obligation handler when no other obligation handler matches the obligation_id name.
Return values:
XACML_RESULT_SUCCESS XACML handler successfully registered with the request.