Skip to content
Snippets Groups Projects
Commit a5321d83 authored by sveseli's avatar sveseli
Browse files

added first implementation of single sign-on manager

parent 68157eec
No related branches found
No related tags found
No related merge requests found
#!/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
#!/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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment