74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 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 = sp.create_manage_name_id_request(destination, name_id=nameid,
 | |
|                                            new_id=newid)
 | |
| 
 | |
|     print mid
 | |
|     rargs = sp.apply_binding(binding, "%s" % mid, destination, "")
 | |
| 
 | |
|     # --------- @IDP --------------
 | |
| 
 | |
|     _req = idp.parse_manage_name_id_request(rargs["data"], binding)
 | |
| 
 | |
|     print _req.message
 | |
| 
 | |
|     assert mid.id == _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 = sp.create_manage_name_id_request(destination, name_id=nameid,
 | |
|                                            new_id=newid)
 | |
| 
 | |
|     print mid
 | |
|     rargs = sp.apply_binding(binding, "%s" % mid, 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 | 
