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