The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

VOMS::Lite::SAMLHelper - Perl extension for SAML

SYNOPSIS

  use VOMS::Lite::SAMLHelper;
  %DATA = %{ VOMS::Lite::SAMLHelper::parseSAML($saml) };
  

DESCRIPTION

VOMS::Lite::SAMLHelper is designed to parse SAML 1 and 2 assertion and protocol statements for SARoNGS. The library exposes two functions which may be of use.

parseSAML

  Expects serialised xml (saml) on in $_[0].
  Called in scalar context returns 1 if successfully parsed 0 otherwise.
  Called in array context returns a copy of the parsed object array.
  If $_[1] is set to an array reference this is used to prime 
  and pass the parsed object array back.

  Creates new XML::Parser
  Uses getNode to abstractly parse root node
  Uses parseElement to parse this abstract root node

  Parsed object is represented as an array of XPath-like data stings
  (one array element per data value i.e. may contain \n).

  e.g.
  /path/to/node (namespace)
  /path/to/node{attribute} (attribute.namespace.if.any) = attributevalue
  ...
  /path/to/node TextContentIfAny
  /path/to/node/subnode (namesapce)
  /path/to/node/subnode{attribute} (attribute.namespace.if.any) = attributevalue
  ...
  /path/to/node/subnode TextContentIfAny
  /path/to/node/subnode/subsubnode...
  /path/to/node2 (namespace)
  ...

  namespaces will be consumed and returned only in parenthase

getSAMLAttributes

  Expects serialised xml (saml) on in $_[0].

  return {
      Attributes=>{ (FriendlyName|Name)=Value, ...},
      ResponseID=>$ResponseID,
      Status=>$StatusCodeValue,
      NotOnOrAfter=>$NotOnOrAfter,
      NotBefore=>$NotBefore,
      Subject=>$NameIdentifier,
      Warnings=> [Anonymous array of warnings]
    };

EXPORT

None by default;

SEE ALSO

http://saml.xml.org/saml-specifications

This module was originally designed for the SARoNGS service Hosted by the The University of Manchester on behalf of the UK NGS.

Mailing list, voms-lite@listserv.manchester.ac.uk

AUTHOR

Mike Jones <mike.jones@manchester.ac.uk>

COPYRIGHT AND LICENSE

Copyright (C) 2012 by Mike Jones

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.3 or, at your option, any later version of Perl 5 you may have available.