don't compile id-wsf files when wsf is disabled; this cuts down build

time by a nice margin.
This commit is contained in:
Frédéric Péters 2005-03-18 20:58:34 +00:00
parent 612285913d
commit 5ef972b27e
11 changed files with 157 additions and 94 deletions

View File

@ -36,11 +36,15 @@ clean-local:
EXTRA_DIST = extract_types.py extract_symbols.py
if WSF_ENABLED
WSF_LIB_FILE = $(top_builddir)/lasso/id-wsf/liblasso-id-wsf.la
endif
if MINGW
liblasso_la_LIBADD = \
$(top_builddir)/lasso/xml/liblasso-xml.la \
$(top_builddir)/lasso/id-ff/liblasso-id-ff.la \
$(top_builddir)/lasso/id-wsf/liblasso-id-wsf.la \
$(WSF_LIB_FILE) \
$(LASSO_LIBS) \
lasso.rc.lo
# Just make damn sure the ABI stays the same between
@ -52,7 +56,7 @@ else
liblasso_la_LIBADD = \
$(top_builddir)/lasso/xml/liblasso-xml.la \
$(top_builddir)/lasso/id-ff/liblasso-id-ff.la \
$(top_builddir)/lasso/id-wsf/liblasso-id-wsf.la \
$(WSF_LIB_FILE) \
$(LASSO_LIBS)
# Just make damn sure the ABI stays the same between
# upgrades.

View File

@ -20,8 +20,9 @@ symbols = []
for header_file in glob.glob('%s/*/*.h' % srcdir) + glob.glob('%s/*.h' % srcdir):
symbols.extend(regex.findall(file(header_file).read().replace('\\\n', '')))
wsf = ['lasso_disco', 'lasso_dst', 'lasso_is', 'lasso_profile_service',
'lasso_discovery', 'lasso_wsf', 'lasso_interaction', 'lasso_utility' ]
wsf = ['lasso_disco_', 'lasso_dst_', 'lasso_is_', 'lasso_profile_service',
'lasso_discovery', 'lasso_wsf', 'lasso_interaction', 'lasso_utility',
'lasso_sa_', 'lasso_soap_', 'lasso_authentication' ]
if enable_wsf:
wsf = []

View File

@ -14,6 +14,12 @@ if len(sys.argv) == 2+enable_wsf:
else:
srcdir = '.'
wsf = ['lasso_disco_', 'lasso_dst_', 'lasso_is_', 'lasso_profile_service',
'lasso_discovery', 'lasso_wsf', 'lasso_interaction', 'lasso_utility',
'lasso_sa_', 'lasso_soap_', 'lasso_authentication' ]
if enable_wsf:
wsf = []
fd = open('types.c', 'w')
print >> fd, "/* This file has been autogenerated; changes will be lost */"
@ -30,7 +36,11 @@ for header_file in glob.glob('%s/*/*.h' % srcdir):
type = re.findall('lasso_.*get_type', open(header_file).read())[0]
except IndexError:
continue
print >> fd, "extern GType %s();" % type
for t in wsf:
if type.startswith(t):
break
else:
print >> fd, "extern GType %s();" % type
print >> fd, ""
print >> fd, "type_function functions[] = {"
@ -39,7 +49,11 @@ for header_file in header_files:
type = re.findall('lasso_.*get_type', open(header_file).read())[0]
except IndexError:
continue
print >> fd, "\t%s," % type
for t in wsf:
if type.startswith(t):
break
else:
print >> fd, "\t%s," % type
print >> fd, "\tNULL"
print >> fd, "};"

View File

@ -24,15 +24,18 @@
#include <xmlsec/base64.h>
#include <lasso/xml/disco_description.h>
#include <lasso/xml/disco_resource_offering.h>
#include <lasso/xml/disco_service_instance.h>
#include <lasso/xml/lib_authentication_statement.h>
#include <lasso/xml/lib_subject.h>
#include <lasso/xml/saml_attribute.h>
#include <lasso/xml/saml_attribute_value.h>
#include <lasso/xml/samlp_response.h>
#ifdef LASSO_WSF_ENABLED
#include <lasso/xml/disco_description.h>
#include <lasso/xml/disco_resource_offering.h>
#include <lasso/xml/disco_service_instance.h>
#endif
#include <lasso/id-ff/login.h>
#include <lasso/id-ff/provider.h>
@ -45,8 +48,10 @@
struct _LassoLoginPrivate
{
char *soap_request_msg;
#ifdef LASSO_WSF_ENABLED
LassoDiscoResourceID *resourceId;
LassoDiscoEncryptedResourceID *encryptedResourceId;
#endif
};
@ -69,6 +74,7 @@ static void lasso_login_build_assertion_artifact(LassoLogin *login);
static void
lasso_login_assertion_add_discovery(LassoLogin *login, LassoSamlAssertion *assertion)
{
#ifdef LASSO_WSF_ENABLED
LassoProfile *profile = LASSO_PROFILE(login);
LassoDiscoResourceOffering *resourceOffering;
LassoDiscoServiceInstance *serviceInstance;
@ -94,6 +100,7 @@ lasso_login_assertion_add_discovery(LassoLogin *login, LassoSamlAssertion *asser
assertion->AttributeStatement = attributeStatement;
}
#endif
}
@ -844,8 +851,8 @@ lasso_login_build_response_msg(LassoLogin *login, gchar *remote_providerID)
profile->response = lasso_samlp_response_new();
profile->response->InResponseTo = g_strdup(profile->request->RequestID);
if (profile->request->MajorVersion == 1 && profile->request->MinorVersion < 1) {
/* pre-saml 1.1, move accordingly */
if (profile->request->MajorVersion == 1 && profile->request->MinorVersion == 0) {
/* this is a SAML 1.0 request, must create SAML 1.0 response */
profile->response->MinorVersion = 0;
}
@ -1433,11 +1440,13 @@ int
lasso_login_set_encryptedResourceId(LassoLogin *login,
LassoDiscoEncryptedResourceID *encryptedResourceId)
{
#ifdef LASSO_WSF_ENABLED
g_return_val_if_fail(LASSO_IS_LOGIN(login), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
g_return_val_if_fail(LASSO_IS_DISCO_ENCRYPTED_RESOURCE_ID(encryptedResourceId),
LASSO_PARAM_ERROR_INVALID_VALUE);
login->private_data->encryptedResourceId = g_object_ref(encryptedResourceId);
#endif
return 0;
}
@ -1455,11 +1464,12 @@ lasso_login_set_encryptedResourceId(LassoLogin *login,
int
lasso_login_set_resourceId(LassoLogin *login, const char *content)
{
#ifdef LASSO_WSF_ENABLED
g_return_val_if_fail(LASSO_IS_LOGIN(login), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
g_return_val_if_fail(content != NULL, LASSO_PARAM_ERROR_INVALID_VALUE);
login->private_data->resourceId = lasso_disco_resource_id_new(content);
#endif
return 0;
}

View File

@ -30,8 +30,13 @@ extern "C" {
#endif /* __cplusplus */
#ifdef LASSO_WSF_ENABLED
#include <lasso/xml/disco_encrypted_resource_id.h>
#include <lasso/xml/disco_resource_id.h>
#else
typedef void LassoDiscoEncryptedResourceID;
typedef void LassoDiscoResourceID;
#endif
#include <lasso/xml/lib_authn_request.h>
#include <lasso/xml/lib_authn_response.h>
#include <lasso/xml/samlp_request.h>

View File

@ -81,12 +81,14 @@ lasso_server_add_provider(LassoServer *server, LassoProviderRole role,
gint
lasso_server_add_service(LassoServer *server, LassoDiscoServiceInstance *service)
{
#ifdef LASSO_WSF_ENABLED
g_return_val_if_fail(LASSO_IS_SERVER(server), LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
g_return_val_if_fail(LASSO_IS_DISCO_SERVICE_INSTANCE(service),
LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ);
g_hash_table_insert(server->services, g_strdup(service->ServiceType),
g_object_ref(service));
#endif
return 0;
}
@ -186,8 +188,6 @@ init_from_xml(LassoNode *node, xmlNode *xmlnode)
t = xmlnode->children;
while (t) {
xmlNode *t2 = t->children;
LassoProvider *p;
LassoDiscoServiceInstance *s;
if (t->type != XML_ELEMENT_NODE) {
t = t->next;
@ -196,6 +196,7 @@ init_from_xml(LassoNode *node, xmlNode *xmlnode)
if (strcmp(t->name, "Providers") == 0) {
while (t2) {
LassoProvider *p;
if (t2->type != XML_ELEMENT_NODE) {
t2 = t2->next;
continue;
@ -207,8 +208,10 @@ init_from_xml(LassoNode *node, xmlNode *xmlnode)
}
}
#ifdef LASSO_WSF_ENABLED
if (strcmp(t->name, "Services") == 0) {
while (t2) {
LassoDiscoServiceInstance *s;
if (t2->type != XML_ELEMENT_NODE) {
t2 = t2->next;
continue;
@ -219,6 +222,7 @@ init_from_xml(LassoNode *node, xmlNode *xmlnode)
t2 = t2->next;
}
}
#endif
t = t->next;
}

View File

@ -29,7 +29,11 @@
extern "C" {
#endif /* __cplusplus */
#ifdef LASSO_WSF_ENABLED
#include <lasso/xml/disco_service_instance.h>
#else
typedef void LassoDiscoServiceInstance;
#endif
#include <lasso/id-ff/provider.h>

View File

@ -8,6 +8,20 @@ INCLUDES = \
noinst_LTLIBRARIES = liblasso-id-wsf.la
if WSF_ENABLED
WSF_C_FILES = \
discovery.c \
interaction_profile_service.c \
profile_service.c \
wsf_profile.c
WSF_H_FILES = \
discovery.h \
interaction_profile_service.h \
profile_service.h \
wsf_profile.h
endif
if WSF_AUTH_ENABLED
WSF_AUTH_C_FILES = authentication.c
WSF_AUTH_H_FILES = authentication.h
@ -15,17 +29,11 @@ endif
liblasso_id_wsf_la_SOURCES = \
$(WSF_AUTH_C_FILES) \
discovery.c \
interaction_profile_service.c \
profile_service.c \
wsf_profile.c
$(WSF_C_FILES)
liblassoinclude_HEADERS = \
$(WSF_AUTH_H_FILES) \
discovery.h \
interaction_profile_service.h \
profile_service.h \
wsf_profile.h
$(WSF_H_FILES)
EXTRA_DIST = $(WSF_AUTH_C_FILES) $(WSF_AUTH_H_FILES)

View File

@ -8,9 +8,8 @@ INCLUDES = \
noinst_LTLIBRARIES = liblasso-xml.la
liblasso_xml_la_SOURCES = \
tools.c \
xml.c \
if WSF_ENABLED
WSF_C_FILES = \
disco_authenticate_requester.c \
disco_authenticate_session_context.c \
disco_authorize_requester.c \
@ -51,57 +50,12 @@ liblasso_xml_la_SOURCES = \
is_select.c \
is_text.c \
is_user_interaction.c \
lib_assertion.c \
lib_authentication_statement.c \
lib_authn_context.c \
lib_authn_request.c \
lib_authn_request_envelope.c \
lib_authn_response.c \
lib_authn_response_envelope.c \
lib_federation_termination_notification.c \
lib_idp_entries.c \
lib_idp_entry.c \
lib_idp_list.c \
lib_logout_request.c \
lib_logout_response.c \
lib_name_identifier_mapping_request.c \
lib_name_identifier_mapping_response.c \
lib_register_name_identifier_request.c \
lib_register_name_identifier_response.c \
lib_request_authn_context.c \
lib_scoping.c \
lib_status_response.c \
lib_subject.c \
sa_credentials.c \
sa_parameter.c \
sa_password_transforms.c \
sa_transform.c \
sa_sasl_request.c \
sa_sasl_response.c \
saml_advice.c \
saml_assertion.c \
saml_attribute.c \
saml_attribute_designator.c \
saml_attribute_statement.c \
saml_attribute_value.c \
saml_audience_restriction_condition.c \
saml_authentication_statement.c \
saml_authority_binding.c \
saml_condition_abstract.c \
saml_conditions.c \
saml_name_identifier.c \
saml_statement_abstract.c \
saml_subject.c \
saml_subject_confirmation.c \
saml_subject_locality.c \
saml_subject_statement.c \
saml_subject_statement_abstract.c \
samlp_request.c \
samlp_request_abstract.c \
samlp_response.c \
samlp_response_abstract.c \
samlp_status.c \
samlp_status_code.c \
soap_binding_consent.c \
soap_binding_correlation.c \
soap_binding_processing_context.c \
@ -116,9 +70,7 @@ liblasso_xml_la_SOURCES = \
soap_header.c \
utility_status.c
liblassoinclude_HEADERS = \
strings.h \
xml.h \
WSF_H_FILES = \
disco_authenticate_requester.h \
disco_authenticate_session_context.h \
disco_authorize_requester.h \
@ -159,6 +111,80 @@ liblassoinclude_HEADERS = \
is_select.h \
is_text.h \
is_user_interaction.h \
sa_credentials.h \
sa_parameter.h \
sa_password_transforms.h \
sa_transform.h \
sa_sasl_request.h \
sa_sasl_response.h \
soap_binding_consent.h \
soap_binding_correlation.h \
soap_binding_processing_context.h \
soap_binding_provider.h \
soap_binding_usage_directive.h \
soap_binding_ext_credential.h \
soap_binding_ext_credentials_context.h \
soap_binding_ext_service_instance_update.h \
soap_binding_ext_timeout.h \
soap_body.h \
soap_envelope.h \
soap_header.h \
utility_status.h
endif
liblasso_xml_la_SOURCES = \
tools.c \
xml.c \
lib_assertion.c \
lib_authentication_statement.c \
lib_authn_context.c \
lib_authn_request.c \
lib_authn_request_envelope.c \
lib_authn_response.c \
lib_authn_response_envelope.c \
lib_federation_termination_notification.c \
lib_idp_entries.c \
lib_idp_entry.c \
lib_idp_list.c \
lib_logout_request.c \
lib_logout_response.c \
lib_name_identifier_mapping_request.c \
lib_name_identifier_mapping_response.c \
lib_register_name_identifier_request.c \
lib_register_name_identifier_response.c \
lib_request_authn_context.c \
lib_scoping.c \
lib_status_response.c \
lib_subject.c \
saml_advice.c \
saml_assertion.c \
saml_attribute.c \
saml_attribute_designator.c \
saml_attribute_statement.c \
saml_attribute_value.c \
saml_audience_restriction_condition.c \
saml_authentication_statement.c \
saml_authority_binding.c \
saml_condition_abstract.c \
saml_conditions.c \
saml_name_identifier.c \
saml_statement_abstract.c \
saml_subject.c \
saml_subject_confirmation.c \
saml_subject_locality.c \
saml_subject_statement.c \
saml_subject_statement_abstract.c \
samlp_request.c \
samlp_request_abstract.c \
samlp_response.c \
samlp_response_abstract.c \
samlp_status.c \
samlp_status_code.c \
$(WSF_C_FILES)
liblassoinclude_HEADERS = \
strings.h \
xml.h \
lib_assertion.h \
lib_authentication_statement.h \
lib_authn_context.h \
@ -180,12 +206,6 @@ liblassoinclude_HEADERS = \
lib_scoping.h \
lib_status_response.h \
lib_subject.h \
sa_credentials.h \
sa_parameter.h \
sa_password_transforms.h \
sa_transform.h \
sa_sasl_request.h \
sa_sasl_response.h \
saml_advice.h \
saml_assertion.h \
saml_attribute.h \
@ -210,19 +230,7 @@ liblassoinclude_HEADERS = \
samlp_response_abstract.h \
samlp_status.h \
samlp_status_code.h \
soap_binding_consent.h \
soap_binding_correlation.h \
soap_binding_processing_context.h \
soap_binding_provider.h \
soap_binding_usage_directive.h \
soap_binding_ext_credential.h \
soap_binding_ext_credentials_context.h \
soap_binding_ext_service_instance_update.h \
soap_binding_ext_timeout.h \
soap_body.h \
soap_envelope.h \
soap_header.h \
utility_status.h
$(WSF_H_FILES)
lasso_private_h_sources = \
private.h

View File

@ -56,8 +56,10 @@
#include <lasso/xml/lib_assertion.h>
#include <lasso/xml/saml_attribute_value.h>
#ifdef LASSO_WSF_ENABLED
#include <lasso/xml/disco_resource_id.h>
#include <lasso/xml/disco_encrypted_resource_id.h>
#endif
%}

View File

@ -1,7 +1,7 @@
if WITH_TESTS
TESTS = tests
noinst_PROGRAMS = tests perfs
noinst_PROGRAMS = tests perfs m2
INCLUDES = \
-DPACKAGE=\"@PACKAGE@\" \
@ -20,6 +20,9 @@ tests_LDADD = \
perfs_SOURCES = perfs.c
perfs_LDADD = $(top_builddir)/lasso/liblasso.la $(LASSO_LIBS)
m2_SOURCES = m2.c
m2_LDADD = $(top_builddir)/lasso/liblasso.la $(LASSO_LIBS)
endif
EXTRA_DIST = tests.c login_tests.c basic_tests.c random_tests.c