summaryrefslogtreecommitdiffstats
path: root/lasso
Commit message (Collapse)AuthorAgeFilesLines
...
* WS: register LassoWsSec1SecurityHeader for all namespace associated to ↵Benjamin Dauvergne2009-09-111-0/+14
| | | | | | | WS-Security * lasso/xml/ws/wsse_security_header.c: register all namespace that contains a Security header object.
* XML: add an API to set namespace on a single instance of a LassoNodeBenjamin Dauvergne2009-09-112-1/+74
| | | | | | | | | | | | | | | | | | * lasso/xml/xml.h lasso/xml/xml.c: add a new public API lasso_node_set_custom_namespace(node, prefix, href). It allows to set the precise namespace of a single object, all other instance of the same class continue to use the default namespace for the class. It should be used for difficult consumer of certain nodes (like wsse:Security) which only know certain namespace or do not use the namespace going with the specified version of a specification (like MSP not following ID-WSF 1.0 specification and using http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd instead of http://schemas.xmlsoap.org/ws/2003/06/secext. It also allows to share implementation of schema objects common to many version of the same specification (wsse:Security between ID-WSF 1.0 and ID-WSF 2.0), without creating too many child classes.
* ID-WSF 2.0: remove obsolete FIXME in discovery.hBenjamin Dauvergne2009-09-111-1/+0
|
* Core: remove a use of lasso_node_destroy in LassoSessionBenjamin Dauvergne2009-09-111-1/+1
|
* XML: add support for free xml content to LassoMiscTextNodeBenjamin Dauvergne2009-09-112-7/+81
| | | | | | | | | | | | | | * lasso/xml/misc_text_node.c: * lasso/xml/misc_text_node.h: it is often necessary to be able to put completely determined content inside lasso generated request (for example when copying an assertion for a Bearer authentication method). In this case you can use lasso_node_get_original_xml_node to get at the original content and lasso_misc_text_node_new_with_xml_node to get a LassNode with the same content. There are two additional function to acces this xml payload: lasso_misc_text_node_get_xml_content and lasso_misc_text_node_set_xml_content.
* Core: fix make dist with --enable-wsfBenjamin Dauvergne2009-08-282-3/+4
| | | | | | * lasso/id-wsf-2.0/Makefile.am: * lasso/xml/Makefile.am: some files were missing from the dist files, add them.
* ID-WSF 1.0: Fixed missing or deprecated functions in public headersBenjamin Dauvergne2009-08-287-77/+25
| | | | | | Some new functions were missing from the headers, others were deprecated some time ago and as the API is not considered stable for ID-WSF, I removed them definitely.
* Core: errors.c is a generated file, when generating it place it in $(srcdir) ↵Benjamin Dauvergne2009-08-261-2/+2
| | | | | | | | not build directory * lasso/Makefile.am: the place for errors.c is in the source directory, not the build directory.
* SAML 2.0: Fix bug introduced in commit 4235Benjamin Dauvergne2009-08-261-2/+4
| | | | | | | * lasso/saml-2.0/login.c: profile->msg_url is released before being used ;( Restore the code copying the URL before passing it to lasso_saml20_profile_build_http_redirect, to free it after.
* Core: Fix errors.c generationBenjamin Dauvergne2009-08-261-4/+4
|
* XML SAML2: remove typedef of LassoSaml2Assertion in saml2_advice.h and ↵Benjamin Dauvergne2009-08-262-11/+0
| | | | | | | | saml2_evidence.h * xml/saml-2.0/saml2_advice.h xml/saml-2.0/saml2_evidence.h: the declaration of LassoSaml2Assertion for supposedly preventing recursive include is useless now.
* Core: fix spurious semi-colon inserted in commit 4093Benjamin Dauvergne2009-08-261-1/+0
| | | | | * lasso/errors.h: remove useless semi-colon
* Core: add assertion query to exported profilesBenjamin Dauvergne2009-08-261-0/+1
| | | | | * lasso/lasso.h: include lasso/saml-2.0/assertion_query.h
* XML: Add all including header fil for saml2, id-ff and id-wsfBenjamin Dauvergne2009-08-265-1/+241
| | | | | | | | | * lasso/xml/xml_idff.h: this header file reference all id-ff 1.2 elements * lasso/xml/xml_idwsf.h: this header file reference all id-wsf 1.0 elements * lasso/xml/saml-2.0/xml_saml2.h: this header file reference all saml-2.0 elements
* Core: Remove include of lasso.h in registry.hBenjamin Dauvergne2009-08-262-4/+2
| | | | | | | * lasso/registry.h: include of lasso.h is useless, replace by including directly export.h * lasso/registry.c: directly include errors.h
* ID-WSF: remove OFTYPE usage from headerBenjamin Dauvergne2009-08-261-2/+1
|
* Docs: change the doc production and lot of other fixesBenjamin Dauvergne2009-08-2637-189/+1905
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lasso/Makefile.am: distribute extract_sections.py * docs/references/lasso/lasso.types.in: add missing class (mainly SAML2 and ID-WSF 1.0/2.0) from docs/references/lasso.types.in * lasso/xml/strings.h: add lots of documentation, or at least documentation template to strings constants. * id-ff/login.h: * saml-2.0/assertion_query.h: * xml/xml.h: document undocumented enumerations. * lasso/errors.h: add proper documentation about error codes. * lasso/errors.c: new version of the lasso_strerror function * lasso/build_strerror.py: update the script that generater lasso_strerror from the documentation comments. Remove usage of OFTYPE * lasso/id-ff/session.c: * lasso/id-ff/session.h: remove usage of oftype, prefer gtk-introspection annotations instead. * lasso/id-wsf/data_service.h: * lasso/id-wsf/data_service.c: do the same. Add a script to build lasso-sections.txt * lasso/extract_sections.py: this script parses header files and generated lasso-sections.txt content for GObject class descriptions. Add a template file for the lasso-section.txt file * docs/references/lasso-sections.txt.in: this file serves as a base for the generation of lasso-sections.txt Update docs/references/Makefile.am for generating lasso-sections.txt * docs/references/Makefile.am: always rebuild template, using out of source build directory is too weird without it. call new script extract_sections.py to regenerate lasso-sections.txt if header files changed. Update lasso.sgml file with all missing sections * docs/reference/lasso.sgml: add all missing sections, mainly objects from XML schemas. * docs/reference/lasso-sections.txt: update it * *.c: add section documentation to some files. * lasso/xml/strings.h: fix bad usage or docbook markup
* Core: fix makefile for generating errors.h in out of source dir buildBenjamin Dauvergne2009-08-261-1/+1
| | | | | * lasso/Makefile.am: errors.h is expected to be in srcdir not builddir.
* Core: Use automake-1.11 when possibleBenjamin Dauvergne2009-08-261-1/+1
| | | | | | | | | | | | | | * Makefile.am: use new automake-1.11 silent rules if possible move macros to m4 directory * m4/gtk-doc.m4: add gtk-doc macros. * lasso/Makefile.am: add missing -f flag to rm, to unbreak make distcheck * docs/references/Makefile.am: fix problem between libtool and gtk-doc * autogen.sh: update to autogen.sh from gtk-doc, add support for automake-1.11
* XML: remove all useless instance_init functionsBenjamin Dauvergne2009-08-26282-1934/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use Coccinelle semantic patch tool (http://coccinelle.lip6.fr/) to remove useless instance_init functions, the first patch applied was: @@ type T,V; identifier I, J; parameter list P; expression E1; @@ V instance_init(T node) { <... ( - E1 = 0; | - E1 = NULL; | - E1 = FALSE; ) ...> } It removes useless initialization to 0 (GObject already zeroes allocated objects). The second one is: @ rule1 @ type T; identifier node,fn; @@ - static void fn(T *node) { } @ rule2 extends rule1 @ typedef GType, GInstanceInitFunc; identifier type_constructor; @@ GType type_constructor() { <... - (GInstanceInitFunc)fn + NULL ...> } It removes empty instance_init functions.
* sb2:TargetIdentity can have a contentBenjamin Dauvergne2009-08-262-0/+3
| | | | | | * lasso/xml/id-wsf-2.0/sb2_target_identity.c: * lasso/xml/id-wsf-2.0/sb2_target_identity.h: add support for any content.
* All: Rework include files handling, separated ID-WSF code from SAML2/ID-FF codeBenjamin Dauvergne2009-08-26484-1696/+2143
| | | | | | | | | | | | | * nearly all C files: change includes for relative paths. * lasso/id-wsf/id_wsf.h, lasso/id-wsf-2.0/id_wsf_2.h: add top level public include files for ID-WSF 1.0 and ID-WSF 2.0. * lasso/id-ff/server.*, lasso/id-ff/session.*, lasso/id-ff/identity.*: remove most of the code related to ID-WSF and push into lasso/id-wsf/id_ff_extensions.* and lasso/id-wsf-2.0/identity.c, lasso/id-wsf-2.0/server.c, lasso/id-wsf-2.0/session.c. * lasso/id-wsf-2.0/saml2_login.c, lasso/id-wsf-2.0/saml2_login_private.h: same change but for ID-WSF 2.0 support in SAML2 SSO profile.
* XML&SAML 2.0: add missing include filesBenjamin Dauvergne2009-08-261-1/+2
| | | | | | * lasso/xml/saml-2.0/saml2_encrypted_element.h: xmlSecKey is present in a function signature, so include xmlsec/xmlsec.h.
* XML: only recurse into xml/id-wsf subdirs if --enable-wsf is trueBenjamin Dauvergne2009-08-261-1/+4
| | | | | * lasso/xml/Makefile.am: put id-wsf and id-wsf2 subdirs under a conditionnal.
* ID-WSF 1.0: remove absent header file from the Makefile.amBenjamin Dauvergne2009-08-261-1/+0
| | | | | * lasso/id-wsf/Makefile.am: remove data_service_private.h from header file list.
* Core: SOAP is also used by SAML bindingsBenjamin Dauvergne2009-08-263-12/+12
| | | | | | | | * extract_symbols.py, extract_types.py: export SOAP types whatever the value of the flag --enable-wsf. It still worked because constructor for GObject calls get_type, but there is a race condition: if you receive a SOAP message before sending one, it fails. Only soap_binding types must be removed.
* ID-FF&Core: Seal public field of LassoSessionBenjamin Dauvergne2009-08-2610-39/+81
| | | | | | | | | | | | | | | | | | * id-ff/session.h: seal public fields. * id-ff/session.c, id-ff/sessionprivate.h: add accessors for reading the is_dirty flag and counting store assertions. * id-ff/logout.c, id-ff/login.c, saml-2.0/login.c, saml-2.0/logout.c, saml-2.0/profile.c: use the new accessors. * id-ff/profile.c: include the private header file, use the new accessors, and remove unnecessary setting of is_dirty to FALSE (it should be false at instanciation). * utils.h: add a macro to access private content, prepare for using G_TYPE_INSTANCE_GET_PRIVATE and the GObject infrastructure for private structures eventually.
* ID-WSF 2.0: remove unused variableBenjamin Dauvergne2009-08-261-4/+0
| | | | - lasso/id-wsf-2.0/discovery.c: remove unused variable in discovery.c
* Core: fix bad name of lasso_unlink_and_release_nodeBenjamin Dauvergne2009-08-261-1/+4
| | | | | | | * lasso/utils.h: - rename lasso_unlink_and_release_node to lasso_release_list_of_xml_node. - add a GList iteration macro: lasso_foreach.
* ID-WSF: Lots of modificationsBenjamin Dauvergne2009-08-2611-1298/+1633
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Migrate lots of code to use new utility macros. Try to simplify most code paths or to factorize with LassoWsfProfile. * lasso/id-wsf/wsf_profile.c: Add API: - lasso_wsf_profile_build_soap_response_msg to build SOAP fault for Lasso errors, - lasso_wsf_profile_set_msg_url_from_description, to set the destination URL using the chosen LassoDiscoDescription (with respect to the security mechanism), - lasso_wsf_profile_init_soap_response to initialize a response to the current request, to use in sub classes, - lasso_wsf_profile_get_remote_provider_id, retrieve the SOAP binding corresponding information, - lasso_wsf_profile_get_remote_provider, simplification of lasso_wsf_profile_get_remote_provider_id, - lasso_wsf_profile_get_soap_fault, retrieve the last setted SOAP fault, used by sub classes, - lasso_wsf_profile_set_soap_fault, set a SOAP fault, to be returned by the next call by lasso_wsf_profile_build_soap_response_msg, to use in sub classes, - lasso_wsf_profile_set/get_status_code, set/get the stored status code, to use in the next lasso_xxx_build_response_message, to use in sub classes. Change name lasso_wsf_profile_get_description_autos to lasso_wsf_profile_get_description_auto. Do not access directly the session is_dirty field (it has been sealed). * lasso/id-wsf/wsf_profile.h: Add helper macro lasso_wsf_profile_helper_set_status to set status code of an ID-WSF response message containing a Status element using the stored status code. * lasso/id-wsf/wsf_profile_private.h: Add new fields (moved public fields). Add lasso_wsf_profile_set_msg_url_from_description, lasso_wsf_profile_build_soap_fault_response_msg. * lasso/id-wsf/data_service_private.h: Remove file. * lasso/id-wsf/data_service.h: Remove all public fields. * lasso/id-wsf/data_service.c: Remove private structure. Use the equivalents LassoWsfProfile private fields. Update documentation. Use LassoWsfProfile generic functions for initializing requests. Add API lasso_data_service_get_query_item, lasso_data_service_get_answers, lasso_data_service_get_answer, lasso_data_service_get_answers_by_select, lasso_data_service_get_answer_for_item_id, lasso_data_service_add_modification. Remove lasso_data_service_need_redirect_user use equivalent function lasso_interaction_profile_service_build_redirect_response_msg. Remove lasso_data_service_get_resource_offering, lasso_data_service_set_offering. * lasso/id-wsf/discovery.c: Add documentation. Change some signatures. Remove lasso_discovery_get_description_auto. Change name of lasso_discovery_init_insert to lasso_discovery_init_modify. Add a generic lasso_discovery_process_request_msg. Add internal function lasso_discovery_init_offering, to get automatically an offering if possible. Remove useless init_from_xml. Rework lasso_discovery_build_credential implementation. overloading. Remove lasso_discovery_destroy. * lasso/id-wsf/discovery.h: Remove lasso_discovery_destroy. * lasso/id-wsf/interaction_profile_service.c: Add lasso_interaction_profile_service_build_redirect_response_msg. * lasso/id-wsf/personal_profile_service.c: Update lasso_personal_profile_service_get_email to use lasso_data_service_get_answers_by_select. * lasso/xml/dst_modify.c: make modification parameter optional to the constructor.
* Core: Add new error typesBenjamin Dauvergne2009-08-262-5/+18
| | | | | | | | | * lasso/errors.h lasso/errors.c: add error types: LASSO_ERROR_CAST_FAILED, LASSO_DATA_SERVICE_CANNOT_ADD_ITEM, LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID, LASSO_DST_ERROR_QUERY_NOT_FOUND, LASSO_DST_ERROR_NO_DATA, LASSO_DST_ERROR_MALFORMED_QUERY.
* XML: Add time formatting function for ISO 8601 formatBenjamin Dauvergne2009-08-262-7/+19
| | | | | | * xml/private.h: * xml/tools.c: add util function to format time_t values in the ISO 8601 format.
* XML: Add any attribute parsing to Saml2AttributeValueBenjamin Dauvergne2009-08-262-0/+3
| | | | | | | * xml/saml-2.0/saml2_attribute_value.h: add new public field GHashTable *attributes; * xml/saml-2.0/saml2_attribute_value.c: add parsing instructions to populate attributes field.
* XML: add documentation for lasso_eval_xpath_expressionBenjamin Dauvergne2009-08-261-0/+14
| | | | | * lasso/xml/tools.c: add documentation for xpath helper evaluation function lasso_eval_xpath_expression.
* XML: add string constant for client soap errorsBenjamin Dauvergne2009-08-261-0/+2
| | | | | * lasso/xml/strings.h: add new string constant LASSO_SOAP_FAULT_CODE_CLIENT.
* XML: add documentation for lasso_idwsf2_disco_svc_md_register_new_fullBenjamin Dauvergne2009-08-261-0/+12
| | | | | * lasso/xml/id-wsf-2.0/disco_svc_md_register.c: add documentation for constructor function lasso_idwsf2_disco_svc_md_register_new_full.
* ID-WSF 1.0: Add new error to signal unknown entryBenjamin Dauvergne2009-08-262-0/+5
| | | | | * lasso/errors.{c,h}: add a new error for the ID-WSF 1.0 module, to signal unknown entry in discovery responses.
* ID-WSF 1.0: fix off-by one ref counting error in ↵Benjamin Dauvergne2009-08-261-1/+1
| | | | | | | | lasso_wsf_profile_init_soap_request * lasso/id-wsf/wsf_profile.c (lasso_wsf_profile_init_soap_request): envelope is an argument, increment its ref count before storing it.
* ID-WSF 1.0: improve error recovery in ↵Benjamin Dauvergne2009-08-261-18/+39
| | | | | | | | | | | | | lasso_wsf_profile_comply_with_saml_authentication * lasso/id-wsf/wsf_profile.c (lasso_wsf_profile_comply_with_saml_authentication): reuse existing wsse-security element if present, remove useless comments, move core code after argument type checks, return error if enveloppe or header is missing, fail if any referenced assertion is missing, correctly handle reference count of wsse_security depending on the situation (new or reused).
* ID-WSF 1.0: fix memory leakBenjamin Dauvergne2009-08-261-1/+0
| | | | | | * lasso/id-wsf/discovery.c (lasso_discovery_add_insert_entry): the rule is that callee is responsible for becoming owner of a resource, so no g_object_ref before a call on an argument.
* ID-WSF 2.0: publicize lasso_idwsf2_profile_build_soap_envelopeBenjamin Dauvergne2009-08-262-10/+5
| | | | | | | | * lasso/id-wsf-2.0/profile.c, lasso/id-wsf-2.0/profile.h (lasso_idwsf2_profile_build_soap_envelope): as for ID-WSF 1.0 export this function to allow easier implementation of external ID-WSF 2.0 services. remove FIXME comment and fill equivalent bugzilla reports.
* ID-WSF 2.0: review lasso_idwsf2_discovery_process_metadata_register_response_msgBenjamin Dauvergne2009-08-261-10/+10
| | | | | | | * lasso/id-wsf-2.0/discovery.c (lasso_idwsf2_discovery_process_metadata_register_response_msg): change return code variable to rc, move argument casting after argument type check, copy all the service metadata ids,
* ID-WSF 2.0: review lasso_idwsf2_discovery_process_metadata_register_msgBenjamin Dauvergne2009-08-262-36/+52
| | | | | | | | | | | | | | | * lasso/id-wsf-2.0/discovery.c (lasso_idwsf2_discovery_init_metadata_register): add documentation comment, move argument casting after type checking, change return code name to rc to comply with standardisation, use lasso_build_unique_id instead of duplicating the code, add iteration over all the registered service, add iteration to return all the generated service metadata ids, use new assignment macros. * lasso/id-wsf-2.0/discovery.h (struct _LassoIdWsf2Discovery): change field LassoIdWsf2DiscoSvcMetadata metadata to GList* metadatas and gchar *svcMDID to GList *svcMDIDs in order to support multiple services in requests.
* ID-WSF 2.0: review lasso_idwsf2_discovery_metadata_register_selfBenjamin Dauvergne2009-08-261-3/+3
| | | | | | * lasso/id-wsf-2.0/discovery.c (lasso_idwsf2_discovery_metadata_register_self): Add documentation, add code for getting the service URL.
* ID-WSF 2.0: add documentation to lasso_idwsf2_discovery_register_selfBenjamin Dauvergne2009-08-261-11/+5
| | | | | | * lasso/id-wsf-2.0/discovery.c (lasso_idwsf2_discovery_register_self) move casting after argument type check, simplify code by using lasso_build_unique_id, remove useless comments
* ID-WSF 2.0: simplify gobject boilerplateBenjamin Dauvergne2009-08-261-16/+0
| | | | | | * lasso/id-wsf-2.0/discovery.c: (get_xmlNode, instance_init, class_init) remove useless method get_xmlNode, remove useless NULLing or instance fields.
* ID-WSF 2.0: use new macrosBenjamin Dauvergne2009-08-263-5/+5
| | | | | | | | | | | | | | * lasso/id-wsf-2.0/data_service.c (lasso_idwsf2_data_service_init_query, lasso_idwsf2_data_service_parse_query_items, lasso_idwsf2_data_service_init_modify, lasso_idwsf2_data_service_parse_one_modify_item, lasso_idwsf2_data_service_parse_modify_items): add cast, change macros for stealing version, fix name of macro * lasso/id-wsf-2.0/profile.c: (lasso_idwsf2_profile_init_soap_request) use list handling macro, add missing casts * lasso/id-wsf-2.0/discovery.c: (lasso_idwsf2_discovery_process_metadata_association_add_msg, lasso_idwsf2_discovery_init_query) add missing casts
* ID-WSF 2.0: add a new constructor for UtilStatusBenjamin Dauvergne2009-08-262-0/+28
| | | | | | | | - lasso/xml/id-wsf-2.0/utils_status.h (lasso_idwsf2_util_status_new_with_code): this constructor allow to construct and fill a UtilStatus node with one line. It has two arguments to construct nested two level status objects (with two status codes). If you omit the second argument you get a one level status object.
* ID-WSF 2.0: add initialization of local variablesBenjamin Dauvergne2009-08-261-3/+3
|
* ID-WSF 2.0: Use new XPath API in DSTBenjamin Dauvergne2009-08-261-24/+30
| | | | | | | | - lasso/id-wsf-2.0/data_service.c: - lasso_idwsf2_data_service_parse_query_items: use the new API to remove error outputs from libxml, and generate an additional status code containing newly returned libxml error code. - lasso_idwsf2_data_service_parse_one_modify_item: use the new API.