
Usually just a word or punctuation; occasionally I rewrote a sentence if I had a hard time determining what was meant by the original. (N.B. if I misunderstood something, then my re-wording will be wrong!) Also added eol to many files that were missing it, which throws off 'cat somefile' at a shell prompt (but did not yet touch anything under src/, which also has many files without eol). I did not re-line-wrap the text I changed, so that the diffs are minimized and meaningful changes are easier to spot.
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
from saml2 import BINDING_SOAP
|
|
from saml2.samlp import NewID
|
|
from saml2.saml import NameID, NAMEID_FORMAT_TRANSIENT
|
|
from saml2.client import Saml2Client
|
|
from saml2.server import Server
|
|
|
|
__author__ = 'rolandh'
|
|
|
|
def test_basic():
|
|
sp = Saml2Client(config_file="servera_conf")
|
|
idp = Server(config_file="idp_all_conf")
|
|
|
|
# -------- @SP ------------
|
|
binding, destination = sp.pick_binding("manage_name_id_service",
|
|
entity_id=idp.config.entityid)
|
|
|
|
nameid = NameID(format=NAMEID_FORMAT_TRANSIENT, text="foobar")
|
|
newid = NewID(text="Barfoo")
|
|
|
|
mid, mreq = sp.create_manage_name_id_request(destination, name_id=nameid,
|
|
new_id=newid)
|
|
|
|
print mreq
|
|
rargs = sp.apply_binding(binding, "%s" % mreq, destination, "")
|
|
|
|
# --------- @IDP --------------
|
|
|
|
_req = idp.parse_manage_name_id_request(rargs["data"], binding)
|
|
|
|
print _req.message
|
|
|
|
assert mid == _req.message.id
|
|
|
|
def test_flow():
|
|
sp = Saml2Client(config_file="servera_conf")
|
|
idp = Server(config_file="idp_all_conf")
|
|
|
|
binding, destination = sp.pick_binding("manage_name_id_service",
|
|
entity_id=idp.config.entityid)
|
|
|
|
nameid = NameID(format=NAMEID_FORMAT_TRANSIENT, text="foobar")
|
|
newid = NewID(text="Barfoo")
|
|
|
|
mid, midq = sp.create_manage_name_id_request(destination, name_id=nameid,
|
|
new_id=newid)
|
|
|
|
print midq
|
|
rargs = sp.apply_binding(binding, "%s" % midq, destination, "")
|
|
|
|
# --------- @IDP --------------
|
|
|
|
_req = idp.parse_manage_name_id_request(rargs["data"], binding)
|
|
|
|
print _req.message
|
|
|
|
mnir = idp.create_manage_name_id_response(_req.message, None)
|
|
|
|
if binding != BINDING_SOAP:
|
|
binding, destination = idp.pick_binding("manage_name_id_service",
|
|
entity_id=sp.config.entityid)
|
|
else:
|
|
destination = ""
|
|
|
|
respargs = idp.apply_binding(binding, "%s" % mnir, destination, "")
|
|
|
|
print respargs
|
|
|
|
# ---------- @SP ---------------
|
|
|
|
_response = sp.parse_manage_name_id_request_response(respargs["data"], binding)
|
|
|
|
print _response.response
|
|
|
|
assert _response.response.id == mnir.id
|