Skip to content

Commit 36652dc

Browse files
committed
Fixes #152 - Incorrect id set on messages from XML
1 parent 2c3cfac commit 36652dc

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

lib/Net/SAML2/Protocol/Assertion.pm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ sub new_from_xml {
176176
}
177177

178178
my $self = $class->new(
179+
id => $xpath->findvalue('//saml:Assertion/@ID'),
179180
issuer => $xpath->findvalue('//saml:Assertion/saml:Issuer'),
180181
destination => $xpath->findvalue('/samlp:Response/@Destination'),
181182
attributes => $attributes,

t/03-assertions.t

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ XML
6868
my $assertion = Net::SAML2::Protocol::Assertion->new_from_xml(xml => $xml);
6969
isa_ok($assertion, 'Net::SAML2::Protocol::Assertion');
7070

71+
is($assertion->{id},
72+
"s241001b6007d1700109a3e3bc4350ae5528ba9824",
73+
"Assertion id is as expected");
74+
7175
is($assertion->in_response_to, 'N3k95Hg41WCHdwc9mqXynLPhB');
7276

7377
is(scalar keys %{ $assertion->attributes }, 2);
@@ -128,6 +132,10 @@ is($assertion->nameid_sp_provided_id,
128132
undef,
129133
"nameid_sp_provided_id undefined as expected");
130134

135+
is($assertion->id,
136+
"_61f377717caad87ce2af0e7946cb97b1",
137+
"Assertion id is as expected");
138+
131139
lives_ok(
132140
sub {
133141
my $xml = path('t/data/eherkenning-assertion.xml')->slurp;

t/05-soap-binding.t

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ my $request
4343

4444
isa_ok($request, "Net::SAML2::Protocol::LogoutRequest");
4545
my $request_xml = $request->as_xml;
46+
my $id = $request->{id};
4647

4748
my $xp = get_xpath($request_xml);
4849
isa_ok($xp, "XML::LibXML::XPathContext");
@@ -67,6 +68,8 @@ my $soaped_request = Net::SAML2::Protocol::LogoutRequest->new_from_xml(
6768
);
6869
isa_ok($soaped_request, 'Net::SAML2::Protocol::LogoutRequest');
6970

71+
is($soaped_request->{id}, $id,
72+
"LogoutRequest ID is as expected");
7073
is($soaped_request->session, $request->session,
7174
"SOAP session equals request session");
7275
is($soaped_request->nameid, $request->nameid,

0 commit comments

Comments
 (0)