summaryrefslogtreecommitdiffstats
path: root/python/lasso.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/lasso.py')
-rw-r--r--python/lasso.py168
1 files changed, 165 insertions, 3 deletions
diff --git a/python/lasso.py b/python/lasso.py
index dda25e09..8df098d7 100644
--- a/python/lasso.py
+++ b/python/lasso.py
@@ -41,10 +41,14 @@ import lassomod
_globals = globals()
for constantName, constantValue in lassomod.__dict__.iteritems():
if constantName.startswith('lassoHttpMethod') \
+ or constantName.startswith('lassoLibConsent') \
+ or constantName.startswith('lassoLibNameIDPolicyType') \
+ or constantName.startswith('lassoLibProtocolProfile') \
or constantName.startswith('lassoLoginProtocolProfile') \
or constantName.startswith('lassoMessageType') \
or constantName.startswith('lassoProviderType') \
or constantName.startswith('lassoRequestType') \
+ or constantName.startswith('lassoSamlAuthenticationMethod') \
or constantName.startswith('lassoSignatureMethod'):
_globals[constantName[5].lower() + constantName[6:]] = constantValue
@@ -231,13 +235,68 @@ class Server(_ObjectMixin, lassomod.LassoServer):
return lassomod.lasso_server_dump(self)
+class Identity(_ObjectMixin, lassomod.LassoIdentity):
+ # Constructors
+
+ def __new__(cls, metadata = None, public_key = None, private_key = None, certificate = None,
+ signature_method = signatureMethodRsaSha1):
+ self = lassomod.lasso_identity_new(
+ metadata, public_key, private_key, certificate, signature_method)
+ if self is None:
+ raise ErrorInstanceCreationFailed('lasso_identity_new')
+ object.__setattr__(self, '__class__', cls)
+ return self
+
+ def new_from_dump(cls, dump):
+ self = lassomod.lasso_identity_new_from_dump(dump)
+ if self is None:
+ raise ErrorInstanceCreationFailed('lasso_identity_new_from_dump')
+ object.__setattr__(self, '__class__', cls)
+ return self
+ new_from_dump = classmethod(new_from_dump)
+
+ # Methods
+
+ def dump(self):
+ return lassomod.lasso_identity_dump(self)
+
+
+class Session(_ObjectMixin, lassomod.LassoSession):
+ # Constructors
+
+ def __new__(cls, metadata = None, public_key = None, private_key = None, certificate = None,
+ signature_method = signatureMethodRsaSha1):
+ self = lassomod.lasso_session_new(
+ metadata, public_key, private_key, certificate, signature_method)
+ if self is None:
+ raise ErrorInstanceCreationFailed('lasso_session_new')
+ object.__setattr__(self, '__class__', cls)
+ return self
+
+ def new_from_dump(cls, dump):
+ self = lassomod.lasso_session_new_from_dump(dump)
+ if self is None:
+ raise ErrorInstanceCreationFailed('lasso_session_new_from_dump')
+ object.__setattr__(self, '__class__', cls)
+ return self
+ new_from_dump = classmethod(new_from_dump)
+
+ # Methods
+
+ def dump(self):
+ return lassomod.lasso_session_dump(self)
+
+
class _ProfileChild(object):
"""Abstract class for all Lasso objects that inherit from LassoProfile"""
# Attributes
def get_identity(self):
- return lassomod.lasso_profile_get_identity(self.parent)
+ identity = lassomod.lasso_profile_get_identity(self.parent)
+ if identity is not None:
+ object.__setattr__(identity, '__class__', Identity)
+ return identity
def set_identity(self, identity):
lassomod.lasso_profile_set_identity(self.parent, identity)
identity = property(get_identity, set_identity)
@@ -305,11 +364,17 @@ class _ProfileChild(object):
response_type = property(get_response_type)
def get_server(self):
- return self.parent.server
+ server = self.parent.server
+ if server is not None:
+ object.__setattr__(server, '__class__', Server)
+ return server
server = property(get_server)
def get_session(self):
- return lassomod.lasso_profile_get_session(self.parent)
+ session = lassomod.lasso_profile_get_session(self.parent)
+ if session is not None:
+ object.__setattr__(session, '__class__', Session)
+ return session
def set_session(self, session):
lassomod.lasso_profile_set_session(self.parent, session)
session = property(get_session, set_session)
@@ -469,6 +534,103 @@ class Logout(_ObjectMixin, lassomod.LassoLogout, _ProfileChild):
raise newError(errorCode, 'lasso_logout_validate_request')
+class Lecp(_ObjectMixin, lassomod.LassoLecp):
+ # Attributes
+
+ def get_msg_body(self):
+ return self.parent.parent.msg_body
+ msg_body = property(get_msg_body)
+
+ def get_msg_url(self):
+ return self.parent.parent.msg_url
+ msg_url = property(get_msg_url)
+
+ def get_request(self):
+ request_type = self.request_type
+ if request_type == messageTypeAuthnRequest:
+ request = lassomod.lasso_profile_get_authn_request_ref(self.parent.parent)
+ object.__setattr__(request, '__class__', AuthnRequest)
+ elif request_type == messageTypeRequest:
+ request = lassomod.lasso_profile_get_request_ref(self.parent.parent)
+ object.__setattr__(request, '__class__', Request)
+ else:
+ raise ErrorUnknownRequestType('lasso_profile_get_???_request', request_type)
+ return request
+ request = property(get_request)
+
+ def get_request_type(self):
+ return self.parent.parent.request_type
+ request_type = property(get_request_type)
+
+ # Constructors
+
+ def __new__(cls, server):
+ self = lassomod.lasso_lecp_new(server)
+ if self is None:
+ raise ErrorInstanceCreationFailed('lasso_lecp_new')
+ object.__setattr__(self, '__class__', cls)
+ return self
+
+ def new_from_dump(cls, server, dump):
+ self = lassomod.lasso_lecp_new_from_dump(server, dump)
+ if self is None:
+ raise ErrorInstanceCreationFailed('lasso_lecp_new_from_dump')
+ object.__setattr__(self, '__class__', cls)
+ return self
+ new_from_dump = classmethod(new_from_dump)
+
+ # Methods
+
+ def build_authn_request_envelope_msg(self):
+ errorCode = lassomod.lasso_lecp_build_authn_request_envelope_msg(self)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_build_authn_request_envelope_msg')
+
+ def build_authn_request_msg(self, remote_providerID):
+ errorCode = lassomod.lasso_lecp_build_authn_request_msg(self, remote_providerID)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_build_authn_request_msg')
+
+ def build_authn_response_envelope_msg(self, authentication_result, authenticationMethod,
+ reauthenticateOnOrAfter):
+ errorCode = lassomod.lasso_lecp_build_authn_response_envelope_msg(
+ self, authentication_result, authenticationMethod, reauthenticateOnOrAfter)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_build_authn_response_envelope_msg')
+
+ def build_authn_response_msg(self):
+ errorCode = lassomod.lasso_lecp_build_authn_response_msg(self)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_build_authn_response_msg')
+
+ def init_authn_request(self):
+ errorCode = lassomod.lasso_lecp_init_authn_request(self)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_init_authn_request')
+
+ def init_from_authn_request_msg(self, authn_request_msg, authn_request_method):
+ errorCode = lassomod.lasso_lecp_init_from_authn_request_msg(
+ self, authn_request_msg, authn_request_method)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_init_from_authn_request_msg')
+
+ def process_authn_request_envelope_msg(self, request_msg):
+ errorCode = lassomod.lasso_lecp_process_authn_request_envelope_msg(self, request_msg)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_process_authn_request_envelope_msg')
+
+ def process_authn_response_envelope_msg(self, response_msg):
+ errorCode = lassomod.lasso_lecp_process_authn_response_envelope_msg(self, response_msg)
+ if errorCode:
+ raise newError(errorCode, 'lasso_lecp_process_authn_response_envelope_msg')
+
+ def set_identity_from_dump(self, dump):
+ lassomod.lasso_profile_set_identity_from_dump(self.parent.parent, dump)
+
+ def set_session_from_dump(self, dump):
+ lassomod.lasso_profile_set_session_from_dump(self.parent.parent, dump)
+
+
################################################################################
# Module Initialization
################################################################################