
Retains python2.7 compatibility for all files. Fixes only syntax errors, tests still fail on python3 for various reasons.
53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
from saml2 import xmldsig as ds
|
|
from saml2 import config
|
|
from saml2 import extension_elements_to_elements
|
|
from saml2 import element_to_extension_element
|
|
from saml2 import saml
|
|
from saml2.client import Saml2Client
|
|
from saml2.extension import pefim
|
|
from saml2.extension.pefim import SPCertEnc
|
|
from saml2.samlp import Extensions
|
|
from saml2.samlp import authn_request_from_string
|
|
from saml2.sigver import read_cert_from_file
|
|
from pathutils import full_path
|
|
|
|
__author__ = 'roland'
|
|
|
|
conf = config.SPConfig()
|
|
conf.load_file("server_conf")
|
|
client = Saml2Client(conf)
|
|
|
|
# place a certificate in an authn request
|
|
cert = read_cert_from_file(full_path("test.pem"), "pem")
|
|
|
|
spcertenc = SPCertEnc(
|
|
x509_data=ds.X509Data(
|
|
x509_certificate=ds.X509Certificate(text=cert)))
|
|
|
|
extensions = Extensions(
|
|
extension_elements=[element_to_extension_element(spcertenc)])
|
|
|
|
req_id, req = client.create_authn_request(
|
|
"http://www.example.com/sso",
|
|
"urn:mace:example.com:it:tek",
|
|
nameid_format=saml.NAMEID_FORMAT_PERSISTENT,
|
|
message_id="666",
|
|
extensions=extensions)
|
|
|
|
|
|
print(req)
|
|
|
|
# Get a certificate from an authn request
|
|
|
|
xml = "%s" % req
|
|
|
|
parsed = authn_request_from_string(xml)
|
|
|
|
_elem = extension_elements_to_elements(parsed.extensions.extension_elements,
|
|
[pefim, ds])
|
|
|
|
assert len(_elem) == 1
|
|
_spcertenc = _elem[0]
|
|
_cert = _spcertenc.x509_data[0].x509_certificate.text
|
|
assert cert == _cert
|