diff --git a/src/python/dm/common/service/auth/sessionManager.py b/src/python/dm/common/service/auth/sessionManager.py new file mode 100755 index 0000000000000000000000000000000000000000..d60135294926bb702b3e95371b137163fde0fcfb --- /dev/null +++ b/src/python/dm/common/service/auth/sessionManager.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +from dm.common.utility.loggingManager import LoggingManager + +class SessionManager: + + def __init__(self, name=None): + self.name = name + self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__) + + def getName(self): + return self.name + + def addSession(self, sessionId, sessionInfo): + return None + + def checkSession(self, sessionId): + return None + +####################################################################### +# Testing. +if __name__ == '__main__': + pass + diff --git a/src/python/dm/common/service/auth/singleSignOnManager.py b/src/python/dm/common/service/auth/singleSignOnManager.py new file mode 100755 index 0000000000000000000000000000000000000000..c1bd0f2cb2850a408c834bf1f495ef27ec72e7be --- /dev/null +++ b/src/python/dm/common/service/auth/singleSignOnManager.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +import os + +from dm.common.utility.configurationManager import ConfigurationManager +from dm.common.objects.dmObjectManager import DmObjectManager +from dm.common.utility.objectUtility import ObjectUtility +from dm.common.utility.singleton import Singleton +from dm.common.exceptions.objectNotFound import ObjectNotFound + +class SingleSignOnManager(DmObjectManager, Singleton): + + DEFAULT_SESSION_TIMEOUT_IN_SECONDS = 3600 # seconds + + CONFIG_SECTION_NAME = 'SingleSignOnManager' + SESSION_MANAGER_KEY = 'sessionManager' + SESSION_TIMEOUT_IN_SECONDS_KEY = 'sessionTimeoutInSeconds' + + # Singleton instance. + __instance = None + + def __init__(self): + if SingleSignOnManager.__instance: + return + SingleSignOnManager.__instance = self + DmObjectManager.__init__(self) + self.configurationManager = ConfigurationManager.getInstance() + self.sessionManager = None + self.configure() + + def configure(self): + configItems = self.configurationManager.getConfigItems(SingleSignOnManager.CONFIG_SECTION_NAME) + self.logger.debug('Got config items: %s' % configItems) + if not configItems: + return + sessionTimeout = self.configurationManager.getConfigOption(SingleSignOnManager.CONFIG_SECTION_NAME, SingleSignOnManager.SESSION_TIMEOUT_IN_SECONDS_KEY, SingleSignOnManager.DEFAULT_SESSION_TIMEOUT_IN_SECONDS) + self.logger.debug('Session timeout: %s' % sessionTimeout) + + # Create session manager + sessionManager = self.configurationManager.getConfigOption(SingleSignOnManager.CONFIG_SECTION_NAME, SingleSignOnManager.SESSION_MANAGER_KEY) + (moduleName,className,constructor) = self.configurationManager.getModuleClassConstructorTuple(sessionManager, SingleSignOnManager) + self.logger.debug('Creating session manager class: %s' % className) + self.sessionManager = ObjectUtility.createObjectInstance(moduleName, className, constructor) + + def addSession(self, sessionId, sessionInfo): + if self.sessionManager: + self.logger.debug('Adding session id %s: %s' % (sessionId,sessionInfo)) + try: + return self.sessionManager.addSession(sessionId, sessionInfo) + except Exception, ex: + self.logger.error(ex) + return None + + def checkSession(self, sessionId): + if self.sessionManager: + self.logger.debug('Checking session id: %s' % sessionId) + try: + return self.sessionManager.checkSession(sessionId) + except ObjectNotFound, ex: + self.logger.debug(ex) + except Exception, ex: + self.logger.error(ex) + return None + +####################################################################### +# Testing. +if __name__ == '__main__': + am = AuthorizationPrincipalManager.getInstance() + authPrincipal = am.getAuthorizationPrincipal('sveseli', 'sv') + print 'Auth principal: ', authPrincipal + +