Authen-NZRealMe
view release on metacpan or search on metacpan
lib/Authen/NZRealMe/ICMSResolutionRequest.pm view on Meta::CPAN
package Authen::NZRealMe::ICMSResolutionRequest;
$Authen::NZRealMe::ICMSResolutionRequest::VERSION = '1.23';
use warnings;
use strict;
require XML::Generator;
require XML::LibXML;
require XML::LibXML::XPathContext;
require Data::UUID;
use POSIX qw(strftime);
use Digest::MD5 qw(md5_hex);
use MIME::Base64 qw(encode_base64);
use Authen::NZRealMe::CommonURIs qw(URI NS_PAIR);
my $ns_soap = [ 'soap' => URI('soap12') ];
my $ns_wsse = [ NS_PAIR('wsse') ];
my $ns_wsu = [ NS_PAIR('wsu') ];
my $ns_wst = [ NS_PAIR('wst') ];
my $ns_wsa = [ NS_PAIR('wsa') ];
my $ns_icms = [ NS_PAIR('icms') ];
my $ns_ds = [ 'dsig' => URI('ds') ];
my @all_ns = (
$ns_soap, $ns_wsse, $ns_wsu, $ns_wst, $ns_wsa, $ns_icms
);
my $wst_validate = URI('wst_validate');
my $wss_saml2 = URI('wss_saml2');
my $wsa_anon = URI('wsa_anon');
sub new {
my $class = shift;
my $sp = shift;
my $icms_token = shift;
my $self = bless {
icms_token => $icms_token,
signer => $sp->_signer(),
method_data => $sp->_icms_method_data( 'Validate' ),
}, $class;
die "The ICMS WSDL file has not been parsed or contains no data."
unless $self->_method_data;
return $self->_init($sp);
}
sub _init {
my $self = shift;
my $sp = shift;
$self->_generate_flt_resolve_doc($sp);
return $self;
}
sub icms_token { shift->{icms_token}; }
sub request_id { shift->{request_id}; }
sub destination_url { shift->{destination_url}; }
sub request_data { shift->{request_data}; }
sub _method_data { shift->{method_data}; }
sub _signer { shift->{signer}; }
sub _generate_flt_resolve_doc {
my $self = shift;
my $sp = shift;
# The following list of parts will be signed in the request, any with a
# 'namespaces' array will have those namespaces treated as InclusiveNamespaces
# as detailed in http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/#sec-Specification
my @signed_parts = (
{
name => 'Action',
id => $sp->generate_saml_id('wsa:Action'),
namespaces => ['soap'],
},
{
name => 'MessageID',
id => $sp->generate_saml_id('wsa:MessageID'),
( run in 0.815 second using v1.01-cache-2.11-cpan-71847e10f99 )