=head1 NAME

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

=head1 INHERITANCE

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

=head1 SYNOPSIS

 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 $trace = $call->(wsse_Security => [$auth], %data);

=head1 DESCRIPTION

The Web Service Security protocol is implemented in extensions of
L<XML::Compile::WSS|XML::Compile::WSS>. This module integrates WSS in SOAP usage.

This module is an XML::Compile::SOAP::Extension, a plugin for the
SOAP code.  Some of these protocols implemented with these plugins
behave badly: interfere with the WSDL specification.  Therefore, these
B<WSDL plugins> have to be B<instantiated before> the WSDL files get read.
The use of the information can only take place when all schema's are read,
so these B<security features> can only be B<created after> that.

=head1 METHODS

=head2 Constructors

=over 4

=item XML::Compile::SOAP::WSS-E<gt>B<new>(OPTIONS)

Usually, you do not call L<new()|XML::Compile::SOAP::WSS/"Constructors"> but one of the specific instantiators.
Depends of which kind of WSS service you need.

=back

=head2 Attributes

=over 4

=item $obj-E<gt>B<addWSS>(WSSOBJ)

Add a new L<XML::Compile::WSS|XML::Compile::WSS> object to the list of maintained.

=item $obj-E<gt>B<schema>()

=item $obj-E<gt>B<wssConfigs>()

=back

=head2 Security features

=over 4

=item $obj-E<gt>B<basicAuth>(OPTIONS)

See documentation in L<XML::Compile::WSS::BasicAuth|XML::Compile::WSS::BasicAuth>.  The OPTIONS are
passed to its new() method.

=item $obj-E<gt>B<signature>(OPTIONS)

See documentation in L<XML::Compile::WSS::Signature|XML::Compile::WSS::Signature>.  The OPTIONS are
passed to its new() method.

=item $obj-E<gt>B<timestamp>(OPTIONS)

See documentation in L<XML::Compile::WSS::Timestamp|XML::Compile::WSS::Timestamp>.  The OPTIONS are
passed to its new() method.

=back

=head1 SEE ALSO

This module is part of XML-Compile-WSS distribution version 1.00,
built on October 16, 2012. Website: F<http://perl.overmeer.net/xml-compile/>

Other distributions in this suite:
L<XML::Compile>,
L<XML::Compile::SOAP>,
L<XML::Compile::SOAP12>,
L<XML::Compile::SOAP::Daemon>,
L<XML::Compile::SOAP::WSA>,
L<XML::Compile::C14N>,
L<XML::Compile::WSS>,
L<XML::Compile::Tester>,
L<XML::Compile::Cache>,
L<XML::Compile::Dumper>,
L<XML::Compile::RPC>,
L<XML::Rewrite>,
L<XML::eXistDB>,
and
L<XML::LibXML::Simple>.

Please post questions or ideas to the mailinglist at
F<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile>
For live contact with other developers, visit the C<#xml-compile> channel
on C<irc.perl.org>.

=head1 LICENSE

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

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://www.perl.com/perl/misc/Artistic.html>

