## LassoIdWsf2Profile LassoIdWsf2Profile |

## Functions

void | lasso_idwsf2_profile_set_epr ()
LassoWsAddrEndpointReference * | lasso_idwsf2_profile_get_epr ()
LassoSoapEnvelope * | lasso_idwsf2_profile_get_soap_envelope_request ()
LassoSoapEnvelope * | lasso_idwsf2_profile_get_soap_envelope_response ()
lasso_error_t | lasso_idwsf2_profile_init_request ()
lasso_error_t | lasso_idwsf2_profile_build_request_msg ()
lasso_error_t | lasso_idwsf2_profile_process_request_msg ()
lasso_error_t | lasso_idwsf2_profile_check_security_mechanism ()
LassoNode * | lasso_idwsf2_profile_get_name_identifier ()
lasso_error_t | lasso_idwsf2_profile_init_response ()
lasso_error_t | lasso_idwsf2_profile_init_soap_fault_response ()
lasso_error_t | lasso_idwsf2_profile_redirect_user_for_interaction ()
lasso_error_t | lasso_idwsf2_profile_build_response_msg ()
lasso_error_t | lasso_idwsf2_profile_process_response_msg ()

## Types and Values

struct | LassoIdWsf2Profile

## Description

## Functions

### lasso_idwsf2_profile_set_epr ()

    void
    lasso_idwsf2_profile_set_epr (LassoIdWsf2Profile *idwsf2_profile,
                                  LassoWsAddrEndpointReference *epr);

### lasso_idwsf2_profile_get_epr ()

    LassoWsAddrEndpointReference *
    lasso_idwsf2_profile_get_epr (LassoIdWsf2Profile *idwsf2_profile);

Return the EPR used by this profile.

#### Parameters

idwsf2_profile | a LassoIdWsf2Profile object |

#### Returns

a LassoWsAddrEndpointReference object, or NULL if none is set.

[transfer none]

### lasso_idwsf2_profile_get_soap_envelope_request ()

    LassoSoapEnvelope *
    lasso_idwsf2_profile_get_soap_envelope_request
                                   (LassoIdWsf2Profile *idwsf2_profile);

Return the last parsed SOAP request object.

#### Parameters

idwsf2_profile | a LassoIdWsf2Profile object |

#### Returns

a LassoSoapEnvelope object or NULL if no request as ever been parsed with this object. You must free this object.

[transfer none]

### lasso_idwsf2_profile_get_soap_envelope_response ()

    LassoSoapEnvelope *
    lasso_idwsf2_profile_get_soap_envelope_response
                                   (LassoIdWsf2Profile *idwsf2_profile);

Return the last parsed SOAP response object.

#### Parameters

idwsf2_profile | a LassoIdWsf2Profile object |

#### Returns

a LassoSoapEnvelope object or NULL if no response as ever been parsed with this objects. You must free this object.

[transfer none]

### lasso_idwsf2_profile_init_request ()

    lasso_error_t
    lasso_idwsf2_profile_init_request (LassoIdWsf2Profile *profile);

Initialize a new SOAP ID-WSF 2.0 request. Clear the existing request if one is currently set.

#### Parameters

profile | a LassoIdWsf2Profile object |

#### Returns

0 if successful, an error code otherwise.

### lasso_idwsf2_profile_build_request_msg ()

    lasso_error_t
    lasso_idwsf2_profile_build_request_msg
                                   (LassoIdWsf2Profile *profile,
                                    const char *security_mech_id);

Serialize and sign, if needed, the SOAP request message, put the result in

    LASSO_PROFILE(profile)->msg_body

.

FIXME: really do sign messages.

#### Parameters

profile | a LassoIdWsf2Profile object |

#### Returns

0 if successful, LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED.

### lasso_idwsf2_profile_process_request_msg ()

    lasso_error_t
    lasso_idwsf2_profile_process_request_msg
                                   (LassoIdWsf2Profile *profile,
                                    const char *msg);

Parse a SOAP request message and initialize the SOAP Envelope for the response.

#### Parameters

wsf2_profile | a LassoIdWsf2Profile object |
message | a received SOAP message |

#### Returns

0 if successful, an error code otherwise among:

- LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ if `profile` is not a LassoIdWsf2Profile object,

- LASSO_PARAM_ERROR_INVALID_VALUE if message is NULL,

- LASSO_PROFILE_ERROR_INVALID_MSG if we cannot parse the message,

- LASSO_SOAP_ERROR_MISSING_BODY if the message has no body content.

### lasso_idwsf2_profile_check_security_mechanism ()

    lasso_error_t
    lasso_idwsf2_profile_check_security_mechanism
                                   (LassoIdWsf2Profile *profile,
                                    const char *security_mech_id);

Check ID-WSF 2.0 Security Mechanism upon the received request. It is mandatory that a LassoServer is setted for the `profile` object.

#### Parameters

profile | a LassoIdWsf2Profile object |
security_mech_id | the security mechanism to enforce, if none is provided Bearer is assumed. | [allow-none]

#### Returns

0 if the request passed the check, an error code otherwise.

### lasso_idwsf2_profile_get_name_identifier ()

    LassoNode *
    lasso_idwsf2_profile_get_name_identifier
                                   (LassoIdWsf2Profile *idwsf2_profile);

Return the NameIdentifier found in a WS-Security authentication token, when Bearer or SAML security mechanism is used. This method does not validate any security conditions on the assertion.

#### Parameters

idwsf2_profile | a LassoIdWsf2Profile object |

#### Returns

a LassoNode object or NULL.

[transfer full][allow-none]

### lasso_idwsf2_profile_init_response ()

    lasso_error_t
    lasso_idwsf2_profile_init_response (LassoIdWsf2Profile *profile);

Initialize a new SOAP ID-WSF 2.0 response. Clear the existing response if one is currently set.

#### Parameters

profile | a LassoIdWsf2Profile object |

#### Returns

0 if successful, an error code otherwise.

### lasso_idwsf2_profile_init_soap_fault_response ()

    lasso_error_t
    lasso_idwsf2_profile_init_soap_fault_response
                                   (LassoIdWsf2Profile *profile,
                                    const char *faultcode,
                                    const char *faultstring,
                                    GList *details);

Initialize a new SOAP 1.1 fault.

#### Parameters

profile | a LassoIdWsf2Profile object |
faultcode | a SOAP fault code, see LASSO_SOAP_FAULT_CLIENT, LASSO_SOAP_FAULT_SERVER. |
faultstring | a human description of the error. | [allow-none]
details | complementary data describing the error, you can use LassoIdWsf2UtilStatus. | [allow-none][element-type LassoNode]

#### Returns

0 if successful, an error code otherwise.

### lasso_idwsf2_profile_redirect_user_for_interaction ()

    lasso_error_t
    lasso_idwsf2_profile_redirect_user_for_interaction
                                   (LassoIdWsf2Profile *profile,
                                    const gchar *redirect_url,
                                    gboolean for_data);

Create a SOAP fault containing a RedirectRequest element, with a redirectURL property set to `redirect_url` concatenated with the parameter "transactionID" set to the messageID of the response message.

#### Parameters

profile | a LassoIdWsf2Profile object |
redirect_url | an URL where the user must be redirected |

#### Returns

0 if successful, an error code otherwise.

### lasso_idwsf2_profile_build_response_msg ()

    lasso_error_t
    lasso_idwsf2_profile_build_response_msg
                                   (LassoIdWsf2Profile *profile);

Serialize and sign the SOAP, if needed, the response message, put the result in

    LASSO_PROFILE(profile)->msg_body

.

#### Parameters

idwsf2_profile | a LassoIdWsf2Profile object |

#### Returns

0 if successful, LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED otherwise.

### lasso_idwsf2_profile_process_response_msg ()

    lasso_error_t
    lasso_idwsf2_profile_process_response_msg
                                   (LassoIdWsf2Profile *profile,
                                    const char *msg);

Parse a response received by SOAP. Place the parsed message in the LassoIdWsf2Profile structure in the `soap_envelope_response` field and the content of the body in the `response` field.

#### Parameters

profile | a LassoIdWsf2Profile object |
message | a string containing a response message |

#### Returns

0 if successful, one of those error codes if the call fails:

- LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ if first parameter is not a LassoIdWsf2Profile object,

- LASSO_PARAM_ERROR_INVALID_VALUE if message is NULL,

- LASSO_SOAP_ERROR_MISSING_BODY if no body element is found,

- LASSO_PROFILE_ERROR_MISSING_RESPONSE if the body element is empty.

## Types and Values

### struct LassoIdWsf2Profile

    struct LassoIdWsf2Profile {
    	LassoProfile parent;
    };