33
33
#include <lasso/id-ff/profile.h>
34
34
#include <lasso/id-ff/profileprivate.h>
35
#include <lasso/id-ff/providerprivate.h>
37
#include <lasso/saml-2.0/profileprivate.h>
36
39
/*****************************************************************************/
37
40
/* public functions */
65
69
if (remote_provider == NULL)
72
if (remote_provider->private_data->affiliation_id) {
73
name_id_sp_name_qualifier = remote_provider->private_data->affiliation_id;
75
name_id_sp_name_qualifier = profile->remote_providerID;
68
78
federation = g_hash_table_lookup(
69
profile->identity->federations, profile->remote_providerID);
79
profile->identity->federations,
80
name_id_sp_name_qualifier);
70
81
if (federation == NULL)
130
141
} else if (strcmp(name, "Modify") == 0) {
131
142
if (strcmp((char*)ns->href, LASSO_DISCO_HREF) == 0) {
132
type =LASSO_REQUEST_TYPE_DISCO_MODIFY;
143
type = LASSO_REQUEST_TYPE_DISCO_MODIFY;
134
type =LASSO_REQUEST_TYPE_DST_MODIFY;
145
type = LASSO_REQUEST_TYPE_DST_MODIFY;
136
147
} else if (strcmp(name, "SASLRequest") == 0) {
137
148
type = LASSO_REQUEST_TYPE_SASL_REQUEST;
149
} else if (strcmp(name, "ManageNameIDRequest") == 0) {
150
type = LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT;
139
message(G_LOG_LEVEL_WARNING, "Unkown node name : %s", name);
152
message(G_LOG_LEVEL_WARNING, "Unknown node name : %s", name);
153
166
* Tests the query string to know if the URL is called as the result of a
154
167
* Liberty redirect (action initiated elsewhere) or not.
156
* Return value: TRUE if lasso query, FALSE otherwise
169
* Return value: TRUE if Liberty query, FALSE otherwise
159
172
lasso_profile_is_liberty_query(const gchar *query)
285
298
if (LASSO_IS_SAMLP_RESPONSE(profile->response)) {
286
299
LassoSamlpResponse *response = LASSO_SAMLP_RESPONSE(profile->response);
287
if (response->Status) lasso_node_destroy(LASSO_NODE(response->Status));
300
if (response->Status) lasso_node_destroy(LASSO_NODE(response->Status));
288
301
response->Status = status;
332
358
* Return value: 0 on success; or a negative value otherwise.
335
lasso_profile_set_session_from_dump(LassoProfile *profile, const gchar *dump)
361
lasso_profile_set_session_from_dump(LassoProfile *profile, const gchar *dump)
337
363
g_return_val_if_fail(dump != NULL, LASSO_PARAM_ERROR_INVALID_VALUE);
339
365
profile->session = lasso_session_new_from_dump(dump);
340
366
if (profile->session == NULL)
341
367
return critical_error(LASSO_PROFILE_ERROR_BAD_SESSION_DUMP);
370
lasso_saml20_profile_set_session_from_dump(profile);
342
373
profile->session->is_dirty = FALSE;
379
410
{ "MsgUrl", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoProfile, msg_url) },
380
411
{ "MsgBody", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoProfile, msg_body) },
381
412
{ "MsgRelayState", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoProfile, msg_relayState) },
413
{ "HttpRequestMethod", SNIPPET_CONTENT | SNIPPET_INTEGER,
414
G_STRUCT_OFFSET(LassoProfile, http_request_method) },
385
418
static LassoNodeClass *parent_class = NULL;
421
get_xmlNode(LassoNode *node, gboolean lasso_dump)
424
LassoProfile *profile = LASSO_PROFILE(node);
426
xmlnode = parent_class->get_xmlNode(node, lasso_dump);
428
if (profile->private_data->artifact) {
429
xmlNewTextChild(xmlnode, NULL, (xmlChar*)"Artifact",
430
(xmlChar*)profile->private_data->artifact);
433
if (profile->private_data->artifact_message) {
434
xmlNewTextChild(xmlnode, NULL, (xmlChar*)"ArtifactMessage",
435
(xmlChar*)profile->private_data->artifact_message);
443
init_from_xml(LassoNode *node, xmlNode *xmlnode)
445
LassoProfile *profile = LASSO_PROFILE(node);
448
parent_class->init_from_xml(node, xmlnode);
451
return LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED;
453
t = xmlnode->children;
457
if (t->type != XML_ELEMENT_NODE) {
462
if (strcmp((char*)t->name, "Artifact") == 0) {
463
s = xmlNodeGetContent(t);
464
profile->private_data->artifact = g_strdup((char*)s);
466
} else if (strcmp((char*)t->name, "ArtifactMessage") == 0) {
467
s = xmlNodeGetContent(t);
468
profile->private_data->artifact_message = g_strdup((char*)s);
387
480
/*****************************************************************************/
388
481
/* overridden parent class methods */
389
482
/*****************************************************************************/
456
549
lasso_node_class_set_nodename(nclass, "Profile");
457
550
lasso_node_class_set_ns(nclass, LASSO_LASSO_HREF, LASSO_LASSO_PREFIX);
458
551
lasso_node_class_add_snippets(nclass, schema_snippets);
552
nclass->get_xmlNode = get_xmlNode;
553
nclass->init_from_xml = init_from_xml;
460
555
G_OBJECT_CLASS(klass)->dispose = dispose;
461
556
G_OBJECT_CLASS(klass)->finalize = finalize;