XML::Compile::SOAP::WSS - Web Service Security used in SOAP


   is a XML::Compile::SOAP::Extension


 use XML::Compile::SOAP::WSDL11;
 use XML::Compile::SOAP::WSS;

 # strict order of instantiation!
 my $wss  = XML::Compile::SOAP::WSS->new; # hooks WSDL parser
 my $wsdl = XML::Compile::WSDL11->new($wsdlfn);    

 my $auth = $wss->basicAuth               # add Security record
   ( username => $user
   , password => $password

 # Will include all defined security features
 my $call     = $wsdl->compileClient($opname);
 my ($answer, $trace) = $call->(%data);

 # Only explicit security features:
 my $call     = $wsdl->compileClient($opname);
 my ($answer, $trace) = $call->(wsse_Security => $auth, %data);

 my @features = ($auth, ...);    # any selection of features
 my $answer   = $call->(wsse_Security => \@features, %data);


The Web Service Security protocol is implemented in the sub-classes of XML::Compile::WSS. This module integrates WSS features in SOAP usage.

This module is an XML::Compile::SOAP::Extension; a plugin for the SOAP infra-structure. Many of these extension protocols behave badly: they usually interfere with the WSDL specification. Therefore, all WSDL plugins have to be instantiated before the WSDL files get read, i.e. before the WSDL object itself gets instantiated. The use of the information can only take place when all schema's are read, so these security features can only be created after that.



  schema  undef
schema => XML::Compile::Cache object

Do not use this in combination with a WSDL, but always in any other case.



Add a new XML::Compile::WSS object to the list of maintained features.


Returns a list of all security features.


Security features

Create one or more of these "features", components in the security header.


Implements username/password authentication. See documentation in XML::Compile::WSS::BasicAuth. The %options are passed to its new() method.


Put a crypto signature on one or more elements. See documentation in XML::Compile::WSS::Signature. The %options are passed to its new() method.

 -Option    --Default
  sign_types  'SOAP-ENV:Body'
sign_types => ARRAY

[1.08] specify the types of elements which need to be signed. If you have more elements of the same type, they will all get signed.


Adds a timestamp record to the Security header. See documentation in XML::Compile::WSS::Timestamp. The %options are passed to its new() method.


This module is part of XML-Compile-WSS distribution version 1.14, built on May 08, 2017. Website:

Please post questions or ideas to the mailinglist at . For live contact with other developers, visit the #xml-compile channel on


Copyrights 2011-2017 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the Artistic license. See