* lasso/id-ff/provider.c:
fix lasso_provider_get_base64_succinct_id, it returned a libxml
string, copy it with g_strdup before releasing it to stay with GLib
allocated string in return values.
* docs/reference/lasso/lasso-sections.txt: complete documentation of
LassoSoapEnvelope and LassoSoapFault with ID-WSF additions.
* lasso/id-wsf-2.0/profile.c lasso/id-wsf-2.0/soap_binding.c
lasso/id-wsf-2.0/soap_binding.h:
add internal function _get_node and _get_header to simplify
implementation of accessors for headers.
change signature of lasso_soap_envelope_get_message_id and add new
function lasso_soap_envelope_get_relates_to.
update call points.
add a message id when building a SOAP message.
* lasso/xml/idwsf_strings.h:
add element name for MessageID and RelatesTo WS-Addressing elements.
* lasso/id-wsf/authentication.c lasso/id-wsf/data_service.c
lasso/id-wsf/discovery.c lasso/id-wsf/wsf_profile.c
lasso/id-wsf-2.0/saml2_login.c lasso/xml/disco_description.c:
fix path name of header lasso/id-wsf/wsf_utils.h. make all internal
include path relatives.
* lasso/id-wsf/discovery.c:
- add annotations to lasso_discovery_init_query,
lasso_discovery_init_modify, lasso_discovery_process_request_msg.
- initialize response in lasso_discovery_process_query_mesg and
lasso_discovery_process_modify_msg, so that modifications of the
response can be done between _process_ and _build_ calls.
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/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.
* 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_discovery_build_credential, lasso_discovery_add_remove_entry,
lasso_discovery_add_requested_service_type) use macro g_list_add, to reduce
code size.
not increment reference count of the returned value, it is not how it is done
in the rest of the library. Returned gobject are always not-owned reference,
you reference them only to keep them around.
- 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.
- private: {lookup,remove,set}_registry handle access to the registry
- public: lasso_discovery_[un]register_constructor_for_service_type
gives access to this registry to other classes.
Conflicts: