diff --git a/bin/account-manager.pl.in b/bin/account-manager.pl.in index 102e764e194ed71551a5e1deff402d48efaafc49..0c02223577ec4d066e6ab3a3383b4f967ea2a2f5 100755 --- a/bin/account-manager.pl.in +++ b/bin/account-manager.pl.in @@ -158,9 +158,7 @@ sub parse_federation_metadata { }; die "unable to load federation metadata: $EVAL_ERROR" if $EVAL_ERROR; - my $data = $federation_metadata->parse( - entity_id => $options{sp_entityid}, - ); + my $data = $federation_metadata->parse(id => $options{sp_entityid}); printf "Document %s parsed\n", $configuration->{federation_metadata_file_path}; diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm index b678ef6d59fa861ca74eadc86a1a35a5582b4dd2..2dc3a836d30dec7504c4eb463c91220497c0adc0 100644 --- a/lib/IdPAccountManager/SAMLMetadata.pm +++ b/lib/IdPAccountManager/SAMLMetadata.pm @@ -43,7 +43,7 @@ sub parse { { my $id = $EntityDescriptor->getAttribute('entityID'); - next ENTITY if $args{entity_id} && $args{entity_id} ne $id; + next ENTITY if $args{id} && $args{id} ne $id; my $data = { entityid => $id @@ -55,8 +55,7 @@ sub parse { next unless $child->nodeType() == XML_ELEMENT_NODE; if ($child->localname() eq 'IDPSSODescriptor') { - next ENTITY - if $args{entity_type} && $args{entity_type} ne 'idp'; + next ENTITY if $args{type} && $args{type} ne 'idp'; $data->{type} = 'idp'; @@ -82,8 +81,7 @@ sub parse { } } elsif ($child->localname() eq 'SPSSODescriptor') { - next ENTITY - if $args{entity_type} && $args{entity_type} ne 'sp'; + next ENTITY if $args{type} && $args{type} ne 'sp'; $data->{type} = 'sp'; diff --git a/lib/IdPAccountManager/WebRequest.pm b/lib/IdPAccountManager/WebRequest.pm index 11877142cca97f26b2a2eeb333c30d87f19fc303..ce6f90b1495a84b0a4ae4f337e659ec5b54e70fb 100755 --- a/lib/IdPAccountManager/WebRequest.pm +++ b/lib/IdPAccountManager/WebRequest.pm @@ -255,9 +255,7 @@ sub req_select_sp { return undef; } - $federation_metadata->parse( - entity_id => $self->{in}->{sp_entityid} - ); + $federation_metadata->parse(id => $self->{in}->{sp_entityid}); ## Create a serviceprovider object to store major parameters for this SP in DB my $service_provider = IdPAccountManager::Data::ServiceProvider->new( diff --git a/t/samlmetadata.t b/t/samlmetadata.t index ef44024b6e1825738110e0f02878addb1bd89309..846ae7266dc8cb64a2e421bc3a6715c27ee83519 100755 --- a/t/samlmetadata.t +++ b/t/samlmetadata.t @@ -86,18 +86,18 @@ ok(defined $all, 'metadata extraction: defined result'); ok(ref $all eq 'ARRAY', 'metadata extraction: result type'); ok(scalar @$all == 4318, 'metadata extraction: result count'); -my $sp = $metadata->parse(entity_id => 'https://filesender.ipm.ir/'); +my $sp = $metadata->parse(id => 'https://filesender.ipm.ir/'); ok(defined $sp, 'filtered metadata extraction: defined result'); ok(ref $sp eq 'ARRAY', 'filtered metadata extraction: result type'); ok(scalar @$sp == 1, 'filtered metadata extraction: result count'); is($sp->[0]->{entityid}, 'https://filesender.ipm.ir/', 'filtered entity has expected ID'); -my $none = $metadata->parse(entity_id => 'https://no.such.sp/'); +my $none = $metadata->parse(id => 'https://no.such.sp/'); ok(defined $none, 'filtered metadata extraction: defined result'); ok(ref $none eq 'ARRAY', 'filtered metadata extraction: result type'); ok(scalar @$none == 0, 'filtered metadata extraction: result count'); -my $idp = $metadata->parse(entity_type => 'idp'); +my $idp = $metadata->parse(type => 'idp'); ok(defined $idp, 'filtered metadata extraction: defined result'); ok(ref $idp eq 'ARRAY', 'filtered metadata extraction: result type'); ok(scalar @$idp == 2561, 'filtered metadata extraction: result count');