* 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
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.
* 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).
* lasso/utils.h:
change 'goto exit' for 'goto cleanup'. rename all goto_exit macros to
goto_cleanup_. rename goto_cleanup_if_fail to
goto_cleanup_if_fail_with_rc and add a
goto_cleanup_if_fail for function which do not return an integer
value. add documentation for goto_cleanup macro family.
* lasso/id-ff/login.c:
* lasso/id-ff/provider.c:
* lasso/id-ff/server.c:
* lasso/id-ff/session.c:
* lasso/id-wsf/discovery.c:
* lasso/id-wsf/wsf_profile.c:
* lasso/saml-2.0/profile.c:
* lasso/utils.h:
* lasso/xml/lib_logout_request.c:
* lasso/xml/tools.c:
* lasso/xml/xml.c:
update name of goto_exit_if_fail macros. rename 'exit' labels to
'cleanup'.
* lasso/id-wsf-2.0/data_service.c:
* lasso/id-wsf-2.0/discovery.c:
* lasso/id-wsf-2.0/profile.c:
* lasso/id-wsf/data_service.c:
* lasso/id-wsf/discovery.c:
* lasso/id-wsf/wsf_profile.c:
when --enable-debugging is activated much more type checking is done
by internal macros, and code do not pass compile anymore.
* bindings/python/tests/idwsf2_tests.py: nameIdentifier packing in SOAP
ID-WSF calls headers is no longer supported, do not test it.
* lots of files: Explicitely set all field of initialized structures,
in order to remove -Wno-missing-field-initilizers from needed
compiler options when using -Wall -Wextra.
- lasso/id-ff/provider.c:
- in lasso_provider_verify_signature use standardised memory and
error handling macros, and also standard return code variable name
and exit label.
- in lasso_providerl_load_metadata_from_buffer and
lasso_provider_load_metadata use the standardised macros, exit
labels and return code variable.
- lasso/id-ff/server.c:
- in lasso_server_load_affiliation use standardised allocation and
error handling macros.
- lasso/id-wsf/wsf_profile.c:
- use standardised memory and error handling macros in
lasso_wsf_profile_build_soap_request_msg.
- change return code variable from 'ret' to 'rc' to permit use of
standardised macros like goto_exit_if_fail.
- add initialization to NULL of lot of variables, to enable error return
paths.
- adapt to change bo soap:Body id field to its new name 'Id'
- fix numerous mem leaks by using assignment macros (g_assign_gobject,
g_list_add_gobject) and release macros (g_release_gobject).
security_mech_id is NULL, default to LASSO_SECURITY_MECH_NULL.
In lasso_wsf_profile_init_soap_request increment ref count of the argument
when new reference are created.
- include utils.h
- move lasso_wsf_profile_build_key_info_node here
- add a comment for future review of lasso_discovery_build_credential
- remove direct use of lasso_wsf_profile_build_soap_envelope, use
lasso_wsf_profile_init_soap_request instead.
* lasso/id-wsf/utils.{c,h}:
- new file with security mech id matching functions
* lasso/id-wsf/wsf_profile.c:
- remove all credentials related static functions
- empty all credentials related public functions
- move function related to matching security mechanism into utils.{c,h} and
xml/disco_description.h
- add static function lasso_wsf_profile_comply_with_saml_authentication that
tries to add credential to the request to a web service using the SAML
WS-Security mechanism
- add static function lasso_wsf_profile_comply_with_security_mechanism to
dispatch upon the current chosen securirt mechanism.
- extract build_soap_envelope to the static function
build_soap_envelope_internal to remove warning of usage of a deprecated
function.
- remove lasso_wsf_profile_set_public_key
- remove lasso_wsf_profile_set_security_mech_id
- add lasso_wsf_profile_get_security_mechanism
- add lasso_wsf_profile_set_description
- empty function about online status of the principal
- remove all (non-working) handling of the x509 security mechanism
- add a new constructor function
LassoWsfProfile* lasso_wsf_profile_new_full(LassoServer *server, LassoDiscoResourceOffering *offering)
- and a new init function (for subclass):
gint lasso_wsf_profile_init(LassoWsfProfile *profile, LassoServer *server, LassoDiscoResourceOffering *offering)
* lasso/id-wsf/wsf_profile.h:
- mark as deprecated:
lasso_wsf_profile_move_credentials
lasso_wsf_profile_build_soap_envelope
lasso_wsf_profile_set_provider_soap_request
lasso_wsf_profile_principal_is_online
lasso_wsf_profile_add_credential
lasso_wsf_profile_set_principal_status
lasso_wsf_profile_set_principal_online
lasso_wsf_profile_set_principal_offline
* lasso/id-wsf/wsf_profile_private.h:
- remove fields from LassoWsfProfilePrivate structure:
- GList *credentials;
- gchar *public_key;
- add fields:
- char *security_mech_id;
- LassoDiscoResourceOffering *offering;
in order to extract credentials informations and store them into
the current session.
* lasso/id-wsf/wsf_profile.c: Remove any high-level processing from
lasso_wsf_profile_process_soap_response_msg, just parse and setup
the corresponding fields into the structure. Eventually signal a
SOAP using a return code.
* add documentation
* user xmlSec functions for findings nodes
* add comments on the work flow
* fix memleak
* remove enveloped signature transform,
it is a detached signature.