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.