Net-SAML2

 view release on metacpan or  search on metacpan

t/05-soap-binding.t  view on Meta::CPAN

    );

    foreach (keys %anchors) {
        my $soap = Net::SAML2::Binding::SOAP->new(
            url      => 'https://example.com/auth/saml',
            key      => $sp->key,
            cert     => $sp->cert,
            idp_cert => [$idp_cert],
            anchors  => { $_ => $anchors{$_} }
        );
        isa_ok($soap, "Net::SAML2::Binding::SOAP");

        is($soap->handle_response('here be soap'),
            "<xml></xml>", "We got our XML, so we are verified");
    }

    my $soap = Net::SAML2::Binding::SOAP->new(
        url      => 'https://example.com/auth/saml',
        key      => $sp->key,
        cert     => $sp->cert,
        idp_cert => [ $idp_cert ],
        anchors  => { subject => 'testsuite failure expected' }
    );

    throws_ok(
        sub {
            $soap->handle_response('here be failure');
        },
        qr/Could not verify trust anchors of certificate!/,
        "We cannot trust the anchor"
    )
}

$metadata = path('t/data/idp-samlid-metadata.xml')->slurp;

$idp = Net::SAML2::IdP->new_from_xml(
    xml    => $metadata,
    cacert => 't/data/cacert-samlid.pem'
);
isa_ok($idp, "Net::SAML2::IdP");

my $sso_url = $idp->sso_url($idp->binding('soap')); #'urn:oasis:names:tc:SAML:2.0:bindings:SOAP');

is(
    $sso_url,
    'https://samltest.id/idp/profile/SAML2/SOAP/ECP',
    'SSO url is correct'
);

foreach my $use (keys %{$idp->certs}) {
    for my $cert (@{$idp->cert($use)}) {
        $idp_cert = $cert;
        ok(looks_like_a_cert($idp_cert), "Certificate for: \"$use\" looks like a cert");
    }
};

{

my $art_response = << 'ARTIFACT';
<?xml version="1.0" encoding="UTF-8"?>
<soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"><soap11:Body><saml2p:ArtifactResponse ID="_c9ce9fb074bc6e1773f21f1e32a935b5" InResponseTo="NETSAML2_fc7ddf1855713b8cd4ea05b3f190d7e84328f48d7e7683addea941f930e026ef" IssueInsta...
BgNVBAMMC3NhbWx0ZXN0LmlkMB4XDTE4MDgyNDIxMTQwOVoXDTM4MDgyNDIxMTQwOVowFjEUMBIG
A1UEAwwLc2FtbHRlc3QuaWQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0Z4QX1NFK
s71ufbQwoQoW7qkNAJRIANGA4iM0ThYghul3pC+FwrGv37aTxWXfA1UG9njKbbDreiDAZKngCgyj
xj0uJ4lArgkr4AOEjj5zXA81uGHARfUBctvQcsZpBIxDOvUUImAl+3NqLgMGF2fktxMG7kX3GEVN
c1klbN3dfYsaw5dUrw25DheL9np7G/+28GwHPvLb4aptOiONbCaVvh9UMHEA9F7c0zfF/cL5fOpd
Va54wTI0u12CsFKt78h6lEGG5jUs/qX9clZncJM7EFkN3imPPy+0HC8nspXiH/MZW8o2cqWRkrw3
MzBZW3Ojk5nQj40V6NUbjb7kfejzAgMBAAGjVzBVMB0GA1UdDgQWBBQT6Y9J3Tw/hOGc8PNV7JEE
4k2ZNTA0BgNVHREELTArggtzYW1sdGVzdC5pZIYcaHR0cHM6Ly9zYW1sdGVzdC5pZC9zYW1sL2lk
cDANBgkqhkiG9w0BAQsFAAOCAQEASk3guKfTkVhEaIVvxEPNR2w3vWt3fwmwJCccW98XXLWgNbu3
YaMb2RSn7Th4p3h+mfyk2don6au7Uyzc1Jd39RNv80TG5iQoxfCgphy1FYmmdaSfO8wvDtHTTNiL
ArAxOYtzfYbzb5QrNNH/gQEN8RJaEf/g/1GTw9x/103dSMK0RXtl+fRs2nblD1JJKSQ3AdhxK/we
P3aUPtLxVVJ9wMOQOfcy02l+hHMb6uAjsPOpOVKqi3M8XmcUZOpx4swtgGdeoSpeRyrtMvRwdcci
NBp9UZome44qZAYH1iqrpmmjsfI9pJItsgWu3kXPjhSfj1AJGR1l9JGvJrHki1iHTA==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature><saml2p:Status><saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></saml2p:Status><saml2p:Response ...
BgNVBAMMC3NhbWx0ZXN0LmlkMB4XDTE4MDgyNDIxMTQwOVoXDTM4MDgyNDIxMTQwOVowFjEUMBIG
A1UEAwwLc2FtbHRlc3QuaWQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0Z4QX1NFK
s71ufbQwoQoW7qkNAJRIANGA4iM0ThYghul3pC+FwrGv37aTxWXfA1UG9njKbbDreiDAZKngCgyj
xj0uJ4lArgkr4AOEjj5zXA81uGHARfUBctvQcsZpBIxDOvUUImAl+3NqLgMGF2fktxMG7kX3GEVN
c1klbN3dfYsaw5dUrw25DheL9np7G/+28GwHPvLb4aptOiONbCaVvh9UMHEA9F7c0zfF/cL5fOpd
Va54wTI0u12CsFKt78h6lEGG5jUs/qX9clZncJM7EFkN3imPPy+0HC8nspXiH/MZW8o2cqWRkrw3
MzBZW3Ojk5nQj40V6NUbjb7kfejzAgMBAAGjVzBVMB0GA1UdDgQWBBQT6Y9J3Tw/hOGc8PNV7JEE
4k2ZNTA0BgNVHREELTArggtzYW1sdGVzdC5pZIYcaHR0cHM6Ly9zYW1sdGVzdC5pZC9zYW1sL2lk
cDANBgkqhkiG9w0BAQsFAAOCAQEASk3guKfTkVhEaIVvxEPNR2w3vWt3fwmwJCccW98XXLWgNbu3
YaMb2RSn7Th4p3h+mfyk2don6au7Uyzc1Jd39RNv80TG5iQoxfCgphy1FYmmdaSfO8wvDtHTTNiL
ArAxOYtzfYbzb5QrNNH/gQEN8RJaEf/g/1GTw9x/103dSMK0RXtl+fRs2nblD1JJKSQ3AdhxK/we
P3aUPtLxVVJ9wMOQOfcy02l+hHMb6uAjsPOpOVKqi3M8XmcUZOpx4swtgGdeoSpeRyrtMvRwdcci
NBp9UZome44qZAYH1iqrpmmjsfI9pJItsgWu3kXPjhSfj1AJGR1l9JGvJrHki1iHTA==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature><saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"><saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2....
A1UEBhMCQ0ExFjAUBgNVBAgMDU5ldyBCcnVuc3dpY2sxEDAOBgNVBAcMB01vbmN0b24xEzARBgNV
BAoMCk5ldDo6U0FNTDIxKjAoBgNVBAMMIU5ldDo6U0FNTDIgU1AgU2lnbmluZyBDZXJ0aWZpY2F0
ZTAgFw0yMTEwMTYxODAwNTlaGA8yMTIxMDkyMjE4MDA1OVoweDELMAkGA1UEBhMCQ0ExFjAUBgNV
BAgMDU5ldyBCcnVuc3dpY2sxEDAOBgNVBAcMB01vbmN0b24xEzARBgNVBAoMCk5ldDo6U0FNTDIx
KjAoBgNVBAMMIU5ldDo6U0FNTDIgU1AgU2lnbmluZyBDZXJ0aWZpY2F0ZTCCAiIwDQYJKoZIhvcN
AQEBBQADggIPADCCAgoCggIBALJAo+ANmR4YZ+Vxs+NgNSaa1hVZVu6QBx4gN6513ojOrObdYQ3w
7mvMS2gl4Oi5kaEp1QRFLt6otOnbqmZU4aR7EowTTfMm2DQFTujRej1WMfSH1eoOJcVEPWy73B6B
VyRVX3Qjbx8nVh1ok6OhTauNwZPqoxsw26d1zqa8kGk6ormcfsukQuGArxpMKNqNMMfsK92HY4UA
H/1vtPgZ6kPsZzSLhUXgw9fQrsuCUCcn2fFBBR2Ij5lkbwhxgUAsicpqKouxW5nSOW4qsNr0+3pS
/mk5+l5omfiFapx0B9D9Mq8b9DNmRqogBI0LbME3Rl32VxaPThLw95esMwg+8/aId13MkSULR9IA
LLueRGj5bZJUyopMaJF6M8+mNd8VWR2Onuy3kaTWCR5Qefvegs0vsfgtt1+zHsMzpqq09UBMFUPi
RthRDDC/0Lhz9sMxl2jxMXkUYmlUy4l5PJt7/zOyp+9ZgPdr+Iz82aFxPRyMQ1pGBFxhHdkAAWSy
ij1tejzmiO6/IWhTa3O/mPuQcyL/IzTcgrXWR1Jz0xfHUfMx4YdLMuJePB/6TcRqNtUo4lrT3KKw
D4VFsNo4WltRiYFCnb0BCtrA06jxL/0G4BkFz3ysmbpMsgeK8a/j8mXuqnDZeCfHirtsg1LGq7ax
x/2FH+JkB1uBpRKyoSVbya+HAgMBAAGjUzBRMB0GA1UdDgQWBBRC74lhFalFJDI/DsGuaBI6XJK6
yjAfBgNVHSMEGDAWgBRC74lhFalFJDI/DsGuaBI6XJK6yjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBCwUAA4ICAQCkyLvdNugINS7nVZzBRJ/iC9A5B3Zh8eV9R77tSLIJB7Bc9OhCkxQWwHg1
+5FoQvUhAzMEJrsSCs5bX6xkuvz5FaP6w+QeulCt0ONPhjHEYJ+BcxPIHHiZXXfG52acRiFcE37Z
76WKji591IfZAy5O30JLF25J4ovwysPnIf9k4LuVrEPHlPkNYfeff52WrAO8qVtYsi9x/u81SXqx
nKFyP2mEfv+Med4F2PW6zbTVvdCZ9lCsc43DTM6ACMAo3Bd9YSM8Xbv2B+8yRfVTGjwAlg6opU7L
yEiplmevnELR5o2zjjQ1Qe3foIpnyxF8MR21z/4zRmOp7aM4XXYHIlguPrgaDMelTrFfqU4BuERB
JEIT5NqU1EEmsNl0L9w0yb9b+8xHodUyWZ9PPlZnZhMOHizxOT6PCst72OxfLpH+WLqhguhRGUnJ
hUMC4oymcQ/qCmRQBJLz5zTFZsHf7rHJAJIqP7YOY3b2QXKJlE6WsAPvjaCwm26NGJMMUbMcNn8h
aCw3AQmtvd91c9nXkstplQo0jERth/yGkJnRtL5mxi3JP8oL9NIh+kMMesHljCYkgUGi6wwRW3j2
zPiowpHDZsDLgF88/cjuq6UdleNacIsngCxEvosIEPBPtPj03hUDl4qKZCif1SndcSI9aEhz21aV
1vCZjyOZTb+mYgWUvg==</ds:X509Certificate></ds:X509Data></ds:KeyInfo><xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"><xenc:CipherValue>QW4S06gEvFsBNEPRK4hSajaRVvdd99caZP13daqLV9v9VfH6AlMNUtW4g7x4JeTbAdVqxu3m9psjByE6hWX0mPrp+8vEWVE0nFPx...
ARTIFACT

my $cert1 = << 'CERT1';
-----BEGIN CERTIFICATE-----
MIIDEjCCAfqgAwIBAgIVAMECQ1tjghafm5OxWDh9hwZfxthWMA0GCSqGSIb3DQEB
CwUAMBYxFDASBgNVBAMMC3NhbWx0ZXN0LmlkMB4XDTE4MDgyNDIxMTQwOVoXDTM4
MDgyNDIxMTQwOVowFjEUMBIGA1UEAwwLc2FtbHRlc3QuaWQwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQC0Z4QX1NFKs71ufbQwoQoW7qkNAJRIANGA4iM0
ThYghul3pC+FwrGv37aTxWXfA1UG9njKbbDreiDAZKngCgyjxj0uJ4lArgkr4AOE
jj5zXA81uGHARfUBctvQcsZpBIxDOvUUImAl+3NqLgMGF2fktxMG7kX3GEVNc1kl
bN3dfYsaw5dUrw25DheL9np7G/+28GwHPvLb4aptOiONbCaVvh9UMHEA9F7c0zfF
/cL5fOpdVa54wTI0u12CsFKt78h6lEGG5jUs/qX9clZncJM7EFkN3imPPy+0HC8n
spXiH/MZW8o2cqWRkrw3MzBZW3Ojk5nQj40V6NUbjb7kfejzAgMBAAGjVzBVMB0G
A1UdDgQWBBQT6Y9J3Tw/hOGc8PNV7JEE4k2ZNTA0BgNVHREELTArggtzYW1sdGVz
dC5pZIYcaHR0cHM6Ly9zYW1sdGVzdC5pZC9zYW1sL2lkcDANBgkqhkiG9w0BAQsF
AAOCAQEASk3guKfTkVhEaIVvxEPNR2w3vWt3fwmwJCccW98XXLWgNbu3YaMb2RSn
7Th4p3h+mfyk2don6au7Uyzc1Jd39RNv80TG5iQoxfCgphy1FYmmdaSfO8wvDtHT
TNiLArAxOYtzfYbzb5QrNNH/gQEN8RJaEf/g/1GTw9x/103dSMK0RXtl+fRs2nbl
D1JJKSQ3AdhxK/weP3aUPtLxVVJ9wMOQOfcy02l+hHMb6uAjsPOpOVKqi3M8XmcU
ZOpx4swtgGdeoSpeRyrtMvRwdcciNBp9UZome44qZAYH1iqrpmmjsfI9pJItsgWu
3kXPjhSfj1AJGR1l9JGvJrHki1iHTA==
-----END CERTIFICATE-----
CERT1

my $cert2 = << 'CERT2';
-----BEGIN CERTIFICATE-----
MIIDETCCAfmgAwIBAgIUZRpDhkNKl5eWtJqk0Bu1BgTTargwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLc2FtbHRlc3QuaWQwHhcNMTgwODI0MjExNDEwWhcNMzgw
ODI0MjExNDEwWjAWMRQwEgYDVQQDDAtzYW1sdGVzdC5pZDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAJrh9/PcDsiv3UeL8Iv9rf4WfLPxuOm9W6aCntEA
8l6c1LQ1Zyrz+Xa/40ZgP29ENf3oKKbPCzDcc6zooHMji2fBmgXp6Li3fQUzu7yd
+nIC2teejijVtrNLjn1WUTwmqjLtuzrKC/ePoZyIRjpoUxyEMJopAd4dJmAcCq/K
k2eYX9GYRlqvIjLFoGNgy2R4dWwAKwljyh6pdnPUgyO/WjRDrqUBRFrLQJorR2kD
c4seZUbmpZZfp4MjmWMDgyGM1ZnR0XvNLtYeWAyt0KkSvFoOMjZUeVK/4xR74F8e



( run in 0.778 second using v1.01-cache-2.11-cpan-5a3173703d6 )