diff options
Diffstat (limited to 'python/examples/test.py')
-rwxr-xr-x | python/examples/test.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/python/examples/test.py b/python/examples/test.py index af3960c6..39f1224a 100755 --- a/python/examples/test.py +++ b/python/examples/test.py @@ -17,8 +17,8 @@ req.set_requestAuthnContext(["test1", "test2"], lasso.libAuthnContextComparisonExact) req.set_scoping(proxyCount=1) -# url encodage + signature -query = req.url_encode(1, "../../examples/rsakey.pem") +# url encodage de la request (+ signature) +query = req.export_to_query(1, "../../examples/rsakey.pem") req.destroy() # creation de la response AuthnResponse OU Response @@ -31,12 +31,13 @@ if protocolProfile == lasso.libProtocolProfilePost: print "Query signature check:", res.verify_signature("../../examples/rsapub.pem", "../../examples/rsakey.pem") print "Must authenticate? :", res.must_authenticate(is_authenticated=0) - res.process_authentication_result(1) - # dump pour envoi au SP + # dump (sauvegarde avant authentification) dump_response = res.dump() res.destroy() - + + # reconstruction de la reponse apres authentification du Principal res = lasso.AuthnResponse.new_from_dump(dump_response) + res.process_authentication_result(1) # creation de l'assertion assertion = lasso.Assertion("issuer", res.get_attr_value("InResponseTo")) authentication_statement = lasso.AuthenticationStatement("password", @@ -48,11 +49,17 @@ if protocolProfile == lasso.libProtocolProfilePost: "http://idp-provider.com", "federated") assertion.add_authenticationStatement(authentication_statement) + assertion.set_signature(1, "../../examples/rsakey.pem", + "../../examples/rsacert.pem"); # ajout de l'assertion - res.add_assertion(assertion, "../../examples/rsakey.pem", - "../../examples/rsacert.pem") + res.add_assertion(assertion) + # export de la response (base64 encodée) pr envoi au SP + res_b64 = res.export_to_base64() + res.destroy() # partie SP + # reconstruction de la reponse + res = lasso.AuthnResponse.new_from_export(res_b64, type=1) # Verification de la signature de l'assertion print "Assertion signature check: ", res.get_child("Assertion").verify_signature("../../examples/rootcert.pem") # recuperation du StatusCode |