LassoWsAddrEndpointReference

## LassoWsAddrEndpointReference LassoWsAddrEndpointReference |

## Synopsis

    struct              LassoWsAddrEndpointReference;
    LassoWsAddrEndpointReference * lasso_wsa_endpoint_reference_new
                                                            (void);
    LassoNode *         lasso_wsa_endpoint_reference_get_target_identity_token
                                                            (const LassoWsAddrEndpointReference *epr,
                                                             gboolean (*sech_mech_predicate) (const char *),
                                                             const char *security_mech_id);
    LassoWsAddrEndpointReference * lasso_wsa_endpoint_reference_new_for_idwsf2_service
                                                            (const char *address,
                                                             const char *service_ype,
                                                             const char *provider_id,
                                                             const char *abstract);
    lasso_error_t       lasso_wsa_endpoint_reference_add_security_token
                                                            (LassoWsAddrEndpointReference *epr,
                                                             LassoNode *security_token,
                                                             GList *security_mechanisms);
    lasso_error_t       lasso_wsa_endpoint_reference_associate_service_to_type
                                                            (const char *service_type_uri,
                                                             GType g_type);
    LassoIdWsf2Profile * lasso_wsa_endpoint_reference_get_service
                                                            (LassoWsAddrEndpointReference *epr);

## Description

## Details

### struct LassoWsAddrEndpointReference

    struct LassoWsAddrEndpointReference {
    	LassoNode parent;

    	/* elements */
    	LassoWsAddrAttributedURI *Address;
    	LassoWsAddrReferenceParameters *ReferenceParameters;
    	LassoWsAddrMetadata *Metadata;
    	GList *any; /* of LassoNode */
    	/* attributes */
    	GHashTable *attributes;
    };

### lasso_wsa_endpoint_reference_new ()

    LassoWsAddrEndpointReference * lasso_wsa_endpoint_reference_new
                                                            (void);

Creates a new LassoWsAddrEndpointReference object.

Returns : | a newly created LassoWsAddrEndpointReference object

### lasso_wsa_endpoint_reference_get_target_identity_token ()

    LassoNode *         lasso_wsa_endpoint_reference_get_target_identity_token
                                                            (const LassoWsAddrEndpointReference *epr,
                                                             gboolean (*sech_mech_predicate) (const char *),
                                                             const char *security_mech_id);

Return the first target identity token found in the metadata of the `epr` object which qualify with respect to the predicate or the given security mechanism identifier. It is an error to pass both of `sech_mech_predicate` and `security_mech_id` as NULL.

`epr` : | a LassoWsAddrEndpointReference object
`sech_mech_predicate:(allow-none)` : | a boolean function to select the security mechanism for which we want the security token
`security_mech_id:(allow-none)` : | an optional specific security mechanism identifier to select the security token.
Returns : | a LassoNode object or NULL if the query cannot be satisfied. [transfer none]

### lasso_wsa_endpoint_reference_new_for_idwsf2_service ()

    LassoWsAddrEndpointReference * lasso_wsa_endpoint_reference_new_for_idwsf2_service
                                                            (const char *address,
                                                             const char *service_ype,
                                                             const char *provider_id,
                                                             const char *abstract);

Create and populate a new LassoWsAddrEndpointReference object.

`address` : | the URL of the SOAP endpoint where the service is anchored
`service_type` : | an URI identifying the ID-WSF 2.0 service type
`provider_id` : | an URI identifying the SAML 2.0 service provider hosting the service, this should help in finding key material for security mechanisms.
`abstract` : | a human description of the service.
Returns : | a newly created LassoWsAddrEndpointReference.

### lasso_wsa_endpoint_reference_add_security_token ()

    lasso_error_t       lasso_wsa_endpoint_reference_add_security_token
                                                            (LassoWsAddrEndpointReference *epr,
                                                             LassoNode *security_token,
                                                             GList *security_mechanisms);

Add a new security context declaration for the given security mechanisms identifiers and populate it with a security token.

`epr` : | a LassoWsAddrEndpointReference object
`security_token` : | a security token as a LassoNode object
`security_mechanisms` : | a list of security mechanism for whom the token is made. [element-type utf8]
Returns : | 0 if successfull, an error code otherwise.

### lasso_wsa_endpoint_reference_associate_service_to_type ()

    lasso_error_t       lasso_wsa_endpoint_reference_associate_service_to_type
                                                            (const char *service_type_uri,
                                                             GType g_type);

Associate a profile type to a service type.

`service_type_uri` : | a service type to associate
`g_type` : | the type of the profile object handling this service type
Returns : | 0 if successful, an error code otherwise.

### lasso_wsa_endpoint_reference_get_service ()

    LassoIdWsf2Profile * lasso_wsa_endpoint_reference_get_service
                                                            (LassoWsAddrEndpointReference *epr);

Get a profile object able to communicate with the service represented by this EPR.

Return object: a newly created LassoIdWsf2Profile instance.

`epr` : | a LassoWsAddrEndpointReference object