From 095e4ec54f2a0bd911531173b2950167dea94bda Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Thu, 8 Oct 2015 07:05:16 +0000
Subject: [PATCH] added SSO interfaces

---
 .../service/authSessionController.py          | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/src/python/dm/ds_web_service/service/authSessionController.py b/src/python/dm/ds_web_service/service/authSessionController.py
index f33255a8..d9fc3682 100755
--- a/src/python/dm/ds_web_service/service/authSessionController.py
+++ b/src/python/dm/ds_web_service/service/authSessionController.py
@@ -1,6 +1,10 @@
 #authenticateUser!/usr/bin/env python
 
+import json
 import cherrypy
+from dm.common.utility.encoder import Encoder
+from dm.common.exceptions.invalidRequest import InvalidRequest
+
 from dm.common.service.dmSessionController import DmSessionController
 from dm.ds_web_service.service.impl.authSessionControllerImpl import AuthSessionControllerImpl
 
@@ -20,3 +24,27 @@ class AuthSessionController(DmSessionController):
         self.logger.debug('Returning authorization principal for %s' % (username))
         return response
 
+    @cherrypy.expose
+    @DmSessionController.require(DmSessionController.isAdministrator())
+    @DmSessionController.execute
+    def addSession(self, sessionId, **kwargs):
+        if not len(sessionId):
+            raise InvalidRequest('Invalid session id provided.')
+        sessionInfo = kwargs.get('sessionInfo')
+        if not sessionInfo:
+            raise InvalidRequest('Missing session object.')
+        sessionInfo = json.loads(Encoder.decode(sessionInfo))
+        response = self.authSessionControllerImpl.addSession(sessionId, sessionInfo).getFullJsonRep()
+        self.logger.debug('Session %s added to cache' % (sessionInfo))
+        return response
+
+    @cherrypy.expose
+    @DmSessionController.require(DmSessionController.isAdministrator())
+    @DmSessionController.execute
+    def checkSession(self, sessionId, **kwargs):
+        if not len(sessionId):
+            raise InvalidRequest('Invalid session id provided.')
+        response = self.authSessionControllerImpl.checkSession(sessionId).getFullJsonRep()
+        self.logger.debug('Verified session %s' % (sessionId))
+        return response
+
-- 
GitLab