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

---
 .../dm/ds_web_service/api/authRestApi.py      | 21 +++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/src/python/dm/ds_web_service/api/authRestApi.py b/src/python/dm/ds_web_service/api/authRestApi.py
index 571f9f31..0996a14c 100755
--- a/src/python/dm/ds_web_service/api/authRestApi.py
+++ b/src/python/dm/ds_web_service/api/authRestApi.py
@@ -1,12 +1,14 @@
 #!/usr/bin/env python
 
 import os
+import json
 import urllib
 
 from dm.common.utility.encoder import Encoder
 from dm.common.exceptions.dmException import DmException
 from dm.common.exceptions.invalidRequest import InvalidRequest
 from dm.common.objects.authorizationPrincipal import AuthorizationPrincipal
+from dm.common.objects.dmSession import DmSession
 from dsRestApi import DsRestApi
 
 class AuthRestApi(DsRestApi):
@@ -23,6 +25,25 @@ class AuthRestApi(DsRestApi):
         responseData = self.sendSessionRequest(url=url, method='GET')
         return AuthorizationPrincipal(responseData)
 
+    @DsRestApi.execute
+    def addSession(self, sessionId, sessionInfo):
+        if sessionId is None:
+            raise InvalidRequest('Session id must be provided.')
+        if sessionInfo is None:
+            raise InvalidRequest('Session info must be provided.')
+        url = '%s/sessions/%s' % (self.getContextRoot(), sessionId)
+        url += '?sessionInfo=%s' % Encoder.encode(json.dumps(sessionInfo))
+        responseData = self.sendSessionRequest(url=url, method='POST')
+        return DmSession(responseData)
+
+    @DsRestApi.execute
+    def checkSession(self, sessionId):
+        if sessionId is None:
+            raise InvalidRequest('Session id must be provided.')
+        url = '%s/sessions/%s' % (self.getContextRoot(), sessionId)
+        responseData = self.sendSessionRequest(url=url, method='PUT')
+        return DmSession(responseData)
+
 #######################################################################
 # Testing.
 
-- 
GitLab