Authen-NZRealMe
view release on metacpan or search on metacpan
lib/Authen/NZRealMe/ServiceProvider.pm view on Meta::CPAN
sub _verify_assertion {
my($self, $xml, %args) = @_;
my $request_id = $args{request_id}
or die "Can't resolve to assertion without original request ID\n";
my $binding = $args{saml_response} ? 'http_post' : 'http_artifact';
my @ns_prefs = ($ns_soap11, $ns_saml, $ns_samlp, $ns_xenc);
my $xc = $self->_xpath_context_dom($xml, @ns_prefs);
my $encrypted = $binding eq 'http_post';
if($xc->findnodes('//saml:EncryptedAssertion/xenc:EncryptedData')) {
$encrypted = 1;
$xml = $self->decrypt_assertion($xml);
$xc = $self->_xpath_context_dom($xml, @ns_prefs);
}
# Check for SOAP error
if($binding eq 'http_artifact') {
if(my($error) = $xc->findnodes('//soap11:Fault')) {
my $code = $xc->findvalue('./faultcode', $error) || 'Unknown';
my $string = $xc->findvalue('./faultstring', $error) || 'Unknown';
die "SOAP protocol error:\n Fault Code: $code\n Fault String: $string\n";
}
( run in 1.689 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )