WSRF-Lite
view release on metacpan or search on metacpan
lib/WSRF/Lite.pm view on Meta::CPAN
$WSRF::Constants::WSBF = 'http://docs.oasis-open.org/wsrf/bf-2';
$WSRF::Constants::WSU =
'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';
$WSRF::Constants::WSSE =
'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
#$WSRF::Constants::WSA_ANON = $WSRF::Constants::WSA.'/role/anonymous';
$WSRF::Constants::WSA_ANON = $WSRF::Constants::WSA . '/anonymous';
$WSRF::Constants::DS = 'http://www.w3.org/2000/09/xmldsig#';
#===============================================================================
# We override SOAP::SOM to store the raw XML from a SOAP message - this class is
# used by the WSRF::Deserializer below. SOAP::Lite does not provide you with
# access to the raw XML of a SOAP message (It was on the SOAP::Lite TODO list)
# - here we override the SOAP::SOM module to provide access to the raw XML -
# we override the SOAP::Deserializer which returns the SOAP::SOM object to
# make sure that it actually keeps the XML
package WSRF::SOM;
lib/WSRF/Lite.pm view on Meta::CPAN
die "Failed to access class MIME::Base64: $@" if $@;
#Get Certificate
my $certificate = WSRF::WSS::load_cert();
my $header = "";
my $for_signing =
'<ds:SignedInfo xmlns:ds="' . $WSRF::Constants::DS . '">'
. '<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />'
. '<ds:SignatureMethod Algorithm="' . ($WSRF::WSS::algorithm eq 'sha256' ? 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256' : $WSRF::Constants::DS . 'rsa-sha1') . '"/>';
#search through the envelope for things to sign
foreach my $key ( keys(%WSRF::WSS::ID_Xpath) ) {
next unless (defined $WSRF::WSS::ID_Xpath{$key});
$for_signing .=
WSRF::WSS::make_token( $envelope, $WSRF::WSS::ID_Xpath{$key}, $key )
if defined( $WSRF::WSS::Sign{$key} );
my $parser = XML::LibXML->new();
my $doc = $parser->parse_string($envelope);
my $canon = undef;
( run in 1.148 second using v1.01-cache-2.11-cpan-71847e10f99 )