diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-04-27 09:34:22 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-04-27 09:34:22 +0000 |
| commit | 626ccdc6a7ebc47b2365741171550d61c9249a34 (patch) | |
| tree | 721e2ff4bb13cd0862404aac37e8fa8c4556680d /python | |
| parent | 4ba332309f5790d8aea993c42479fc752dc7355b (diff) | |
| download | lasso-626ccdc6a7ebc47b2365741171550d61c9249a34.tar.gz lasso-626ccdc6a7ebc47b2365741171550d61c9249a34.tar.xz lasso-626ccdc6a7ebc47b2365741171550d61c9249a34.zip | |
add LogoutRequest/Response, FederationTerminationNotification, RegisterNameIdentifierRequest/Response classes in python
Diffstat (limited to 'python')
| -rw-r--r-- | python/lasso.py | 167 | ||||
| -rw-r--r-- | python/lassomod.c | 64 | ||||
| -rwxr-xr-x | python/setup.py | 8 |
3 files changed, 156 insertions, 83 deletions
diff --git a/python/lasso.py b/python/lasso.py index cd529551..0ad484f8 100644 --- a/python/lasso.py +++ b/python/lasso.py @@ -47,6 +47,7 @@ def shutdown(): def assertion_build(response, issuer): return Node(_obj=lassomod.assertion_build(response, issuer)) + def assertion_add_authenticationStatement(assertion, statement): return lassomod.assertion_add_authenticationStatement(assertion, statement) @@ -64,6 +65,36 @@ def authentication_statement_build(authenticationMethod, sessionIndex, idp_nameQualifier, idp_format, confirmationMethod)) + +class Node: + def __init__(self, _obj=None): + """ + """ +## if _obj != None: +## self._o = _obj +## return +## #self._o = lassomod.(size) +## if self._o is None: raise Error('lasso_node_new() failed') + + def dump(self, encoding = "utf8", format = 1): + return lassomod.node_dump(self, encoding, format) + + def destroy(self): + lassomod.node_unref(self) + + def get_attr_value(self, name): + return lassomod.node_get_attr_value(self, name) + + def get_child(self, name): + return Node(_obj=lassomod.node_get_child(self, name)) + + def url_encode(self, sign_method, private_key_file): + return lassomod.node_url_encode(self, sign_method, private_key_file) + + def verify_signature(self, certificate_file): + return lassomod.node_verify_signature(self, certificate_file) + + class AuthnRequest: def __init__(self, providerID, nameIDPolicy, forceAuthn, isPassive, protocolProfile, assertionConsumerServiceID, @@ -89,8 +120,10 @@ class AuthnRequest: idpList, consent) if self._o is None: raise Error('lasso_authn_request_create() failed') + def __isprivate(self, name): return name == '_o' + def __getattr__(self, name): if self.__isprivate(name): return self.__dict__[name] @@ -103,6 +136,7 @@ class AuthnRequest: ret = Node(_obj=ret) return ret + class AuthnResponse: def __init__(self, query, verify_signature, public_key_file, private_key_file, certificate_file, is_authenticated, @@ -141,6 +175,7 @@ class AuthnResponse: def add_assertion(self, assertion): return lassomod.authn_response_add_assertion(self, assertion) + class Request: def __init__(self, assertionArtifact, _obj=None): """ @@ -166,6 +201,7 @@ class Request: ret = Node(_obj=ret) return ret + class Response: def __init__(self, serialized_request, @@ -205,23 +241,22 @@ class Response: def add_assertion(self, assertion): return lassomod.response_add_assertion(self, assertion) -class LogoutRequest: - def __init__(self, providerID, + +class LogoutRequest(Node): + def __init__(self, + providerID, nameIdentifier, nameQualifier, format, - sessionIndex, relayState, consent, _obj=None): + _obj=None): """ """ if _obj != None: self._o = _obj return - self._o = lassomod.logout_request_create(providerID, - nameIdentifier, - nameQualifier, - format, - sessionIndex, - relayState, - consent) - if self._o is None: raise Error('lasso_logout_request_create() failed') + self._o = lassomod.logout_request(providerID, + nameIdentifier, + nameQualifier, + format) + if self._o is None: raise Error('lasso_logout_request() failed') def __isprivate(self, name): return name == '_o' @@ -238,25 +273,22 @@ class LogoutRequest: ret = Node(_obj=ret) return ret -class LogoutResponse: + +class LogoutResponse(Node): def __init__(self, - query, - verifySignature, - public_key, - private_key, - certificate, + providerID, + statusCodeValue, + request, _obj=None): """ """ if _obj != None: self._o = _obj return - self._o = lassomod.logout_response_create(query, - verifySignature, - public_key, - private_key, - certificate) - if self._o is None: raise Error('lasso_logout_response_create() failed') + self._o = lassomod.logout_response(providerID, + statusCodeValue, + request) + if self._o is None: raise Error('lasso_logout_response() failed') def __isprivate(self, name): return name == '_o' @@ -273,27 +305,24 @@ class LogoutResponse: ret = Node(_obj=ret) return ret - def init(self, providerID, statusCodeValue, relayState): - return lassomod.logout_response_init(self, providerID, statusCodeValue, relayState) - -class RegisterNameIdentifierRequest: - def __init__(self, providerID, +class RegisterNameIdentifierRequest(Node): + def __init__(self, + providerID, idpNameIdentifier, idpNameQualifier, idpFormat, - spNameIdentifier, spNameQualifier, spFormat, + spNameIdentifier, spNameQualifier, spFormat, oldNameIdentifier, oldNameQualifier, oldFormat, - relayState, _obj=None): + _obj=None): """ """ if _obj != None: self._o = _obj return - self._o = lassomod.register_name_identifier_request_create(providerID, - idpNameIdentifier, idpNameQualifier, idpFormat, - spNameIdentifier, spNameQualifier, spFormat, - oldNameIdentifier, oldNameQualifier, oldFormat, - relayState) - if self._o is None: raise Error('lasso_logout_request_create() failed') + self._o = lassomod.register_name_identifier_request(providerID, + idpNameIdentifier, idpNameQualifier, idpFormat, + spNameIdentifier, spNameQualifier, spFormat, + oldNameIdentifier, oldNameQualifier, oldFormat) + if self._o is None: raise Error('lasso_register_name_identifier_request() failed') def __isprivate(self, name): return name == '_o' @@ -310,30 +339,62 @@ class RegisterNameIdentifierRequest: ret = Node(_obj=ret) return ret - -class Node: - def __init__(self, _obj=None): +class RegisterNameIdentifierResponse(Node): + def __init__(self, + providerID, + statusCodeValue, + request, + _obj=None): """ """ if _obj != None: self._o = _obj return - #self._o = lassomod.(size) - if self._o is None: raise Error('lasso_node_new() failed') - def dump(self, encoding, format): - return lassomod.node_dump(self, encoding, format) + self._o = lassomod.register_name_identifier_response(providerID, + statusCodeValue, + request) + if self._o is None: raise Error('lasso_register_name_identifier_response() failed') - def destroy(self): - lassomod.node_unref(self) + def __isprivate(self, name): + return name == '_o' - def get_attr_value(self, name): - return lassomod.node_get_attr_value(self, name) + def __getattr__(self, name): + if self.__isprivate(name): + return self.__dict__[name] + if name[:2] == "__" and name[-2:] == "__" and name != "__members__": + raise AttributeError, name + ret = lassomod.register_name_identifier_response_getattr(self, name) + if ret is None: + raise AttributeError, name + if name == "node": + ret = Node(_obj=ret) + return ret - def get_child(self, name): - return Node(_obj=lassomod.node_get_child(self, name)) +class FederationTerminationNotification(Node): + def __init__(self, + providerID, + nameIdentifier, nameQualifier, format, + _obj=None): + """ + """ + if _obj != None: + self._o = _obj + return + self._o = lassomod.federation_termination_notification(providerID, + nameIdentifier, nameQualifier, format) + if self._o is None: raise Error('lasso_federation_termination_notification() failed') - def url_encode(self, sign_method, private_key_file): - return lassomod.node_url_encode(self, sign_method, private_key_file) + def __isprivate(self, name): + return name == '_o' - def verify_signature(self, certificate_file): - return lassomod.node_verify_signature(self, certificate_file) + def __getattr__(self, name): + if self.__isprivate(name): + return self.__dict__[name] + if name[:2] == "__" and name[-2:] == "__" and name != "__members__": + raise AttributeError, name + ret = lassomod.federation_termination_notification_getattr(self, name) + if ret is None: + raise AttributeError, name + if name == "node": + ret = Node(_obj=ret) + return ret diff --git a/python/lassomod.c b/python/lassomod.c index 688efa0b..480a1578 100644 --- a/python/lassomod.c +++ b/python/lassomod.c @@ -26,9 +26,11 @@ #include "py_lasso.h" #include "xml/py_xml.h" -#include "protocols/py_logout.h" -#include "protocols/py_single_sign_on_and_federation.h" -#include "protocols/py_register_name_identifier.h" +#include "protocols/py_logout_request.h" +#include "protocols/py_logout_response.h" +#include "protocols/py_register_name_identifier_request.h" +#include "protocols/py_register_name_identifier_response.h" +#include "protocols/py_federation_termination_notification.h" static PyMethodDef lasso_methods[] = { /* py_lasso.h */ @@ -48,36 +50,44 @@ static PyMethodDef lasso_methods[] = { {"node_verify_signature", node_verify_signature, METH_VARARGS}, /* protocols */ - /* py_logout.h */ + /* py_logout_request.h */ {"logout_request_getattr", logout_request_getattr, METH_VARARGS}, - {"logout_request_create", logout_request_create, METH_VARARGS}, + {"logout_request", logout_request, METH_VARARGS}, + /* py_logout_response.h */ {"logout_response_getattr", logout_response_getattr, METH_VARARGS}, - {"logout_response_create", logout_response_create, METH_VARARGS}, - {"logout_response_init", logout_response_init, METH_VARARGS}, - - /* py_single_sign_on_and_federation.h */ - {"authn_request_getattr", authn_request_getattr, METH_VARARGS}, - {"authn_request_create", authn_request_create, METH_VARARGS}, - {"authn_response_getattr", authn_response_getattr, METH_VARARGS}, - {"authn_response_create", authn_response_create, METH_VARARGS}, - {"authn_response_init", authn_response_init, METH_VARARGS}, - {"authn_response_add_assertion", authn_response_add_assertion, METH_VARARGS}, - {"assertion_build", assertion_build, METH_VARARGS}, - {"assertion_add_authenticationStatement", assertion_add_authenticationStatement, METH_VARARGS}, - {"authentication_statement_build", authentication_statement_build, METH_VARARGS}, - - {"request_create", request_create, METH_VARARGS}, - {"request_getattr", request_getattr, METH_VARARGS}, - - {"response_create", response_create, METH_VARARGS}, - {"response_getattr", response_getattr, METH_VARARGS}, - {"response_init", response_init, METH_VARARGS}, - {"response_add_assertion", response_add_assertion, METH_VARARGS}, + {"logout_response", logout_response, METH_VARARGS}, /* py_register_name_identifier.h */ {"register_name_identifier_request_getattr", register_name_identifier_request_getattr, METH_VARARGS}, - {"register_name_identifier_request_create", register_name_identifier_request_create, METH_VARARGS}, + {"register_name_identifier_request", register_name_identifier_request, METH_VARARGS}, + + {"register_name_identifier_response_getattr", register_name_identifier_response_getattr, METH_VARARGS}, + {"register_name_identifier_response", register_name_identifier_response, METH_VARARGS}, + +/* /\* py_single_sign_on_and_federation.h *\/ */ +/* {"authn_request_getattr", authn_request_getattr, METH_VARARGS}, */ +/* {"authn_request_create", authn_request_create, METH_VARARGS}, */ +/* {"authn_response_getattr", authn_response_getattr, METH_VARARGS}, */ +/* {"authn_response_create", authn_response_create, METH_VARARGS}, */ +/* {"authn_response_init", authn_response_init, METH_VARARGS}, */ +/* {"authn_response_add_assertion", authn_response_add_assertion, METH_VARARGS}, */ +/* {"assertion_build", assertion_build, METH_VARARGS}, */ +/* {"assertion_add_authenticationStatement", assertion_add_authenticationStatement, METH_VARARGS}, */ +/* {"authentication_statement_build", authentication_statement_build, METH_VARARGS}, */ + +/* {"request_create", request_create, METH_VARARGS}, */ +/* {"request_getattr", request_getattr, METH_VARARGS}, */ + +/* {"response_create", response_create, METH_VARARGS}, */ +/* {"response_getattr", response_getattr, METH_VARARGS}, */ +/* {"response_init", response_init, METH_VARARGS}, */ +/* {"response_add_assertion", response_add_assertion, METH_VARARGS}, */ + + /* py_federation_termination_notification.h */ + {"federation_termination_notification_getattr", federation_termination_notification_getattr, METH_VARARGS}, + {"federation_termination_notification", federation_termination_notification, METH_VARARGS}, + {NULL, NULL} /* End of Methods Sentinel */ }; diff --git a/python/setup.py b/python/setup.py index 4d4b0be3..36ad2a9e 100755 --- a/python/setup.py +++ b/python/setup.py @@ -188,9 +188,11 @@ libraries.append('lasso') em = Extension("lassomod", sources = ["py_lasso.c", "xml/py_xml.c", - "protocols/py_single_sign_on_and_federation.c", - "protocols/py_logout.c", - "protocols/py_register_name_identifier.c", + "protocols/py_logout_request.c", + "protocols/py_logout_response.c", + "protocols/py_register_name_identifier_request.c", + "protocols/py_register_name_identifier_response.c", + "protocols/py_federation_termination_notification.c", "lassomod.c", "utils.c", "wrap_objs.c"], define_macros = define_macros, |
