From 88c6d28a42a48736609cebf264c4af2ebf74b796 Mon Sep 17 00:00:00 2001 From: Guillaume Rousse <guillaume.rousse@renater.fr> Date: Tue, 7 Nov 2017 12:47:53 +0100 Subject: [PATCH] filter email adresses at parsing time --- lib/IdPAccountManager/SAMLMetadata.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm index 31ac8be..532ea49 100644 --- a/lib/IdPAccountManager/SAMLMetadata.pm +++ b/lib/IdPAccountManager/SAMLMetadata.pm @@ -140,15 +140,17 @@ sub parse { } } } elsif ($child->localname() eq 'ContactPerson') { - my %contact_details; - $contact_details{type} = $child->getAttribute('contactType'); - if (defined $contact_details{type}) { + my $details; + $details->{type} = $child->getAttribute('contactType'); + if (defined $details->{type}) { foreach my $contact_child ($child->childNodes()) { next unless $contact_child->nodeType() == XML_ELEMENT_NODE; - $contact_details{ $contact_child->localname() } = - $contact_child->textContent(); + my $key = $contact_child->localname(); + my $value = $contact_child->textContent(); + $value =~ s/^mailto:// if $key eq 'EmailAddress'; + $details->{$key} = $value; } - push @{ $data->{contacts} }, \%contact_details; + push @{ $data->{contacts} }, $details; } } elsif ($child->localname() eq 'Organization') { foreach my $name ($child->getChildrenByLocalName('OrganizationName')) { -- GitLab