summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-04-27 09:34:22 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-04-27 09:34:22 +0000
commit626ccdc6a7ebc47b2365741171550d61c9249a34 (patch)
tree721e2ff4bb13cd0862404aac37e8fa8c4556680d /python
parent4ba332309f5790d8aea993c42479fc752dc7355b (diff)
downloadlasso-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.py167
-rw-r--r--python/lassomod.c64
-rwxr-xr-xpython/setup.py8
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,