diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm index 62ba33b4353464d1416a485c330c7236af2e8c6d..85e346765fbdc52b95e3e8e6c0bcf651f27f871b 100644 --- a/lib/IdPAccountManager/SAMLMetadata.pm +++ b/lib/IdPAccountManager/SAMLMetadata.pm @@ -234,10 +234,12 @@ sub _parse_saml_metadata { }elsif ($child->nodeName =~ /ContactPerson$/) { my %contact_details; $contact_details{'type'} = $child->getAttribute('contactType'); - foreach my $contact_child ($child->childNodes()) { - $contact_details{$contact_child->nodeName} = &IdPAccountManager::Tools::encode_utf8($contact_child->textContent()); - } - push @{$extracted_data->{'contacts'}}, \%contact_details; + if (defined $contact_details{'type'}) { + foreach my $contact_child ($child->childNodes()) { + $contact_details{$contact_child->localName} = &IdPAccountManager::Tools::encode_utf8($contact_child->textContent()); + } + push @{$extracted_data->{'contacts'}}, \%contact_details; + } } @@ -257,8 +259,8 @@ sub _parse_saml_metadata { my %contact_details; $contact_details{'type'} = $contact->getAttribute('contactType'); foreach my $contact_child ($EntityDescriptor->childNodes()) { - &IdPAccountManager::Tools::do_log('trace', "Contact : %s", $contact_child->nodeName); - $contact_details{$contact_child->nodeName} = &IdPAccountManager::Tools::encode_utf8($contact_child->textContent()); + &IdPAccountManager::Tools::do_log('trace', "Contact : %s", $contact_child->localName); + $contact_details{$contact_child->localName} = &IdPAccountManager::Tools::encode_utf8($contact_child->textContent()); } push @{$extracted_data->{'contacts'}}, \%contact_details; } diff --git a/templates/web/select_sp.tt2.html b/templates/web/select_sp.tt2.html index 0a3c4445933aee5f7d957aa07d6b1f65a5de8458..40488c3639996eb903537e5699f8f1303fa60de1 100644 --- a/templates/web/select_sp.tt2.html +++ b/templates/web/select_sp.tt2.html @@ -1,5 +1,5 @@ <h3>Send email challenge</h3> -[% IF entity.display_name && entity.display_name.en %] +[% IF sp_metadata_as_hashref.display_name && sp_metadata_as_hashref.display_name.en %] [% SET sp_display_name = sp_metadata_as_hashref.display_name.en %] [% ELSE %] [% SET sp_display_name = sp_metadata_as_hashref.entityid %] @@ -11,17 +11,16 @@ Before you can create test accounts at this Identity Provider, we need to ensure <fieldset> [% IF sp_metadata_as_hashref.contacts.defined %] <legend>Select your email address</legend> - <label for="sp_entityid">The email addresses below have been extracted from your SP SAML metadata.<br/>Please select the email address where an email challenge can be sent to validate your identity</label> + <label for="sp_entityid">The email addresses below have been extracted from your SP SAML metadata.<br/>Please select the email address where an email challenge + can be sent to validate your identity</label> - <ul> [% FOREACH contact IN sp_metadata_as_hashref.contacts -%] [% matches = contact.EmailAddress.match('^(mailto:)?(.*)$') %] [% SET email = matches.1%] -<li><input name="email" value="[% email %]" id="[% email %]" type="radio"/> -<label for="[% email %]">[% email %]</label></li> +<input name="email" value="[% email %]" id="[% email %]" type="radio"/> +<label for="[% email %]">[% email %]</label> [% END %] -</ul> [% ELSE %] No ContactPerson elements could be found in your SP SAML metadata. Therefore we are unable to provide test accounts for your SP. Please contact your local federation